CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

分割视之间如何互相调用对方的Class member

楼主noname3()2000-11-08 16:31:00 在 VC/MFC / 基础类 提问

 
  我有一个分割视,分别是CMyTreeView和CMyListView,如何在CMyTreeView里调用CMyListView的成员函数?谢谢 问题点数:100、回复次数:9Top

1 楼ecore(电子内核)回复于 2000-11-08 16:39:00 得分 0

不太清楚你的意思。  
  不过我认为至少可以:  
  定义一个自定义消息,在CMyListView里处理这个消息,(WParam复用为不同的函数调用)  
  在CMyTreeView里就发消息调用啦。  
   
  还有,要是就是想调用函数的话,可以用friend类啊。Top

2 楼sxbyl(sxbyl)回复于 2000-11-08 17:26:00 得分 0

你可以在框架窗口或CWinApp中保存这两个类的指针,框架窗口指针和CWinApp指针都是很容易得到的,然后就不用说了吧。Top

3 楼easypaper()回复于 2000-11-08 18:05:00 得分 0

可以试一试:  
  在CMyTreeView里面:  
  CDocument   *pDoc   =   GetDocument();  
  ASSERT(pDoc);  
  POSITION   pos   =   pDoc->GetFirstViewPosition();  
  CView*   pView   =   NULL;  
  while   (pos   !=   NULL)  
  {  
          pView   =   GetNextView(pos);  
          if   (pView->IsRuntimeClass(CMyTreeView))  
                  break;  
          pView->UpdateWindow();  
  }        
  if   (!pView)  
          return;  
  CMyTreeView   *pTreeView   =   (CMyTreeView   *)pTreeView;  
   
   
  while(  
  Top

4 楼easypaper()回复于 2000-11-08 18:06:00 得分 0

可以试一试:  
  在CMyTreeView里面:  
  CDocument   *pDoc   =   GetDocument();  
  ASSERT(pDoc);  
  POSITION   pos   =   pDoc->GetFirstViewPosition();  
  CView*   pView   =   NULL;  
  while   (pos   !=   NULL)  
  {  
          pView   =   GetNextView(pos);  
          if   (pView->IsRuntimeClass(CMyTreeView))  
                  break;  
  }      
  if   (!pView)  
          return;  
  CMyTreeView   *pTreeView   =   (CMyTreeView   *)pTreeView;Top

5 楼easypaper()回复于 2000-11-08 18:07:00 得分 0

可以试一试:  
  在CMyTreeView里面:  
  CDocument   *pDoc   =   GetDocument();  
  ASSERT(pDoc);  
  POSITION   pos   =   pDoc->GetFirstViewPosition();  
  CView*   pView   =   NULL;  
  bool   bFound   =   false;  
  while   (pos   !=   NULL)  
  {  
          pView   =   GetNextView(pos);  
          if   (pView->IsRuntimeClass(CMyTreeView))  
          {  
                  bFound   =   true;  
                  break;  
          }  
  }      
  if   (!bFound)  
          return;  
  CMyTreeView   *pTreeView   =   (CMyTreeView   *)pTreeView;Top

6 楼easypaper()回复于 2000-11-08 18:14:00 得分 0

不好意思,csdn一直提示我出现错误,结果发出了这么多贴子。Top

7 楼dingsg(丁丁)回复于 2000-11-08 18:30:00 得分 0

 
   
  视切换,  
  指针切换,  
  就可以互相调用!Top

8 楼peasant()回复于 2000-11-08 19:16:00 得分 0

如同上面所述,遍历视,用isruntimeclass来判断是否是CMyTreeView类的指针。Top

9 楼wuxin(wuxin)回复于 2000-11-08 19:40:00 得分 50

在CMyTreeView里:  
  CMyListView*   pView   =   (CMyListView*)((CSplitterWnd*)GetParent())->GetPane(0,1);  
  ASSERT_KINDOF(CMyListView,   pView);  
  pView->func();Top

10 楼alphagx(alpha)回复于 2000-11-08 21:02:00 得分 0

我也有一种办法,只不过比较容易理解    
  在CMyTreeView中  
  假设你mSplitterWnd是你用来分割窗体的CSplitterWnd类  
      CMainFrame   *   frm;  
      frm   =   (CMainFrame   *)::AfxGetMainWnd();  
      CMyListView   *pView   =   (CMyListView   *)frm.mSplitterWnd.GetPane(0,1);Top

相关问题

  • class member 调用问题
  • unit,class,调用
  • class的调用问题
  • static class member在调用的时候是不是必须前面要有作用域说明
  • jni调用时找不到class
  • 请问,如果一个class的static data member是另一个class,那么,这个static data member的destructor什么时候被调用?
  • 在调用datetime函数取系统当前时间,如何把其年、月、日分割开来?
  • javabean的class中可以调用一个函数,jsp页面中可以调用本页面函数么?
  • 怎么在jsp中调用一般的class
  • vc编写的dll,export了一个class,dephi可以调用吗?

关键词

  • 指针
  • 函数
  • 消息
  • null
  • cmytreeview
  • cmylistview
  • pview
  • 调用
  • isruntimeclass
  • ptreeview

得分解答快速导航

  • 帖主:noname3
  • wuxin

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo