有两个平级的对话框,请问如何在一个对话框的函数里得到另一个对话框的指针?
具体情况是这样的:
我用CSplitterWnd对象把一个SDI窗口分成了两个窗口(一个左,一个右),每个窗口都是CFormView的派生类,每个窗口都对应一个对话框控件。现在我在左边的窗口设置了一个树型控件,而在右边的窗口设置了一个CEdit控件。
我的目的是想当我点击左边这个树型控件时,能够在右边的CEdit控件上显示出一些东西出来。请问有什么好的办法?
我的做法是,在属于左边的窗口的类中,当点击树型控件时,便有左边这个类的相应的处理函数来处理这个动作。在这个处理函数里,我想得到右边窗口类的对象指针,从而能够利用这个指针得到CEdit控件的对象,然后这个对象调用SetWindowText()来在CEdit中显示相关信息。但是应该怎样在左边窗口的类的函数里面得到右边窗口类的指针呢?
问题点数:50、回复次数:10Top
1 楼ydfivy(我就是一送外卖的)回复于 2006-03-07 14:08:28 得分 0
定义全局变量.来保存指针Top
2 楼hust_liuX(shit happens)回复于 2006-03-07 14:27:20 得分 0
还有更好的办法吗?Top
3 楼Tan18(阿强)回复于 2006-03-07 14:30:13 得分 20
(CFormViewRight*)m_pSplitterWnd->GetPane(0,1);Top
4 楼Tan18(阿强)回复于 2006-03-07 14:30:37 得分 0
(CFormViewLeft*)m_pSplitterWnd->GetPane(0,0);Top
5 楼hust_liuX(shit happens)回复于 2006-03-07 14:37:21 得分 0
再请问一下大牛,如果按你说的定义一个全局变量,应该怎么定义呢?Top
6 楼hust_liuX(shit happens)回复于 2006-03-07 14:45:48 得分 0
TO Tan18(阿强):用
(CFormViewRight*)m_pSplitterWnd->GetPane(0,1);语句的话,m_pSplitterWnd不能在左边这个窗口类的函数中得到吧?如果可以的话,怎么操作?Top
7 楼slayer530(首席看客)回复于 2006-03-07 22:05:05 得分 10
AfxGetApp()->GetFrameWnd->m_pSplitterwnd
AfxGetApp()基本在任何地方可以用Top
8 楼jiangsheng(蒋晟.Net[MVP])回复于 2006-03-08 10:01:10 得分 10
use GetDocument()->UpdateAllVIews(this, lHint,pHint) in your view classes
see http://msdn2.microsoft.com/en-us/library/w1z3te7e.aspxTop
9 楼Tan18(阿强)回复于 2006-03-08 16:09:02 得分 0
((CMainFrame*)AfxGetMainWnd())->m_pSplitterwnd;Top
10 楼ks_gq(键盘人生)回复于 2006-03-08 16:42:20 得分 10
我的目的是想当我点击左边这个树型控件时,能够在右边的CEdit控件上显示出一些东西出来。请问有什么好的办法?
我认为按照MFC的思路最好的办法就是利用CDocument来更新你要更改的视图。当点左面的树型控件时:GetDocument()->UpdateAllViews(......); 在右面视图的OnUpdate 函数中来修改要显示的文字
Top




