MFC 单文档拆分窗口后,两个类之间该怎么数据交换

GongKiro 2014-04-23 10:57:45
如题,初学者,请大神搭救。

比如再拆分窗口后,两个类为CTreeView(树视图)和CRightVire,我希望在点击左树的时候获取到相应节点的名称,并将这个节点的名称传到CRightVIew中,然后CRightView中有List1控件,List1中根据节点的名称写入相应的内容。。这该怎么做呢。

我现在用得一个很笨的方法就是
1. 定义一个全局变量记录获取道德左视图左树的节点名称。
2. 获取CXXXView 的指针,在点击左树的相应信息后对CXXXXView进行重绘

部分代码如下:
public:
CBadmintonFinanceApp* m_pApp;
CBadmintonFinanceView* m_pView;
CMainFrame* m_pFrame;

//获取右视图的指针
m_pApp = (CBadmintonFinanceApp*)AfxGetApp();
m_pFrame = (CMainFrame*)m_pApp->m_pMainWnd;
m_pView = (CBadmintonFinanceView*)m_pFrame->m_wndSplitter.GetPane(0, 1);

//重绘
m_pView->Invalidate();

在网上看到些大神说m_pView可以获取到右视图类的成员变量,但是我发现获取的时候,编译直接报错没有这个成员变量,请问懂得大神,是不是我哪里写错了。。
...全文
261 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
GongKiro 2014-04-27
  • 打赏
  • 举报
回复
引用 1 楼 happyparrot 的回复:
建议使用消息进行传递。由CMainFrame负责消息转发。保持拆分窗口的独立性,不要进行互相包含。 CMainFrame是拆分窗口的管理者,有其进行调度,是合理的。
按照您说的,将消息和节点发送到CMainFrame,再由CMainFrame分发,确实Ok了,十分感谢。 小子菜鸟,以后还请大神多多指教。
gz_qmc 2014-04-24
  • 打赏
  • 举报
回复
CTreeView定义一个私有变量 HWND MyOBJ; 增加一个函数 void CTreeView::SetOutView(HWND xObj) { MyOBJ=xObj; } 响应左树点击消息,向MyOBJ窗口发送消息 增加右视的响应函数 根据消息处理结果
快乐鹦鹉 2014-04-24
  • 打赏
  • 举报
回复
建议使用消息进行传递。由CMainFrame负责消息转发。保持拆分窗口的独立性,不要进行互相包含。 CMainFrame是拆分窗口的管理者,有其进行调度,是合理的。

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧