如何在一个FormView里获得另一个FormView的指针
2007-07-13 10:06
232 查看
我的目标是: 想从FormView A 向FormView B 发送自定义消息。
我的程序的窗口结构是: 有一个视图类CMyView, 和两个FormView:A和B
我遇到的问题是: 在FormView A里调用CMyDoc遍历视图类以找到FormView B取
得的文档类指针却为0x00000000
我是这样做的: 1.在CMyDoc中创建GetView函数,内容如下:
CView* CMyDoc::GetView()
{
CView *pView ;
POSITION pos=GetFirstViewPosition();
while(pos!=NULL)
{
pView = GetNextView(pos);
if(pView->IsKindOf(RUNTIME_CLASS CFormViewB)))
break;
}
return pView;
}
2. 在FormViewA的按钮响应函数中,写了如下代码:
void CFormViewA::OnButtonTest()
{
CMainFrame *Frm = (CMainFrame*)AfxGetMainWnd();
CMyDoc* pDoc=(CMyDoc*)Frm->GetActiveDocument();
CView *pView=pDoc->GetView();
pView->PostMessage(WM_USRMSG,0,0);
}
问题出在: 语句CMyDoc* pDoc=(CMyDoc*)Frm->GetActiveDocument();调
试到这里,查看pDoc的值为0x00000000,请问这是什么问题,
该怎么解决
----------------------------------------------------------------------------------------------------------------------------------------------------
解决方法: 1.(modaoshi3002)定义两个全局的视图变量 pA,pB,在各自的构造函数里写好:
pA = this;pB= this;在要用到的文件里extern一下,搞定!
2.我又找到了个办法,因为我的formViewB是由MainFrm的OnCreateClient分割而成的,于是:
CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
CFormViewB *pView = (CFormViewB*)pFrame- >m_wndSplitter.GetPane(1,0);
pView- >PostMessage(WM_USRMSG,0,0);
3.题目中我的那个办法为什么不行,为啥不能获得文档指针呢?还没有解决。
我的程序的窗口结构是: 有一个视图类CMyView, 和两个FormView:A和B
我遇到的问题是: 在FormView A里调用CMyDoc遍历视图类以找到FormView B取
得的文档类指针却为0x00000000
我是这样做的: 1.在CMyDoc中创建GetView函数,内容如下:
CView* CMyDoc::GetView()
{
CView *pView ;
POSITION pos=GetFirstViewPosition();
while(pos!=NULL)
{
pView = GetNextView(pos);
if(pView->IsKindOf(RUNTIME_CLASS CFormViewB)))
break;
}
return pView;
}
2. 在FormViewA的按钮响应函数中,写了如下代码:
void CFormViewA::OnButtonTest()
{
CMainFrame *Frm = (CMainFrame*)AfxGetMainWnd();
CMyDoc* pDoc=(CMyDoc*)Frm->GetActiveDocument();
CView *pView=pDoc->GetView();
pView->PostMessage(WM_USRMSG,0,0);
}
问题出在: 语句CMyDoc* pDoc=(CMyDoc*)Frm->GetActiveDocument();调
试到这里,查看pDoc的值为0x00000000,请问这是什么问题,
该怎么解决
----------------------------------------------------------------------------------------------------------------------------------------------------
解决方法: 1.(modaoshi3002)定义两个全局的视图变量 pA,pB,在各自的构造函数里写好:
pA = this;pB= this;在要用到的文件里extern一下,搞定!
2.我又找到了个办法,因为我的formViewB是由MainFrm的OnCreateClient分割而成的,于是:
CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
CFormViewB *pView = (CFormViewB*)pFrame- >m_wndSplitter.GetPane(1,0);
pView- >PostMessage(WM_USRMSG,0,0);
3.题目中我的那个办法为什么不行,为啥不能获得文档指针呢?还没有解决。
相关文章推荐
- 如何正确的获得一个view的宽和高
- 如何获得一个动态创建的textview的ID?
- 如何正确的获得一个view的宽和高
- 如何正确的获得一个view的宽和高
- 如何让UIView中的Button点击之后跳转到另一个ViewController上去,ViewController上也有一个按钮 可以返回
- VC 如何在一个对话框中获得另一个对话框句柄()
- 如何获得一个View所属的控制器
- 如何做到让两个一模一样大小的view中的一个实时跟着另一个缩放和移动,位置始终保持一致
- 如何正确的获得一个view的宽和高
- 如何让一个Form 出现在另一个非MDIForm 的Form 中
- MFC中如何将 CFormView放置到一个CDockablePane中
- ios 如何让一个view居中另一个view
- 如何在一个form里刷新另一个form里的datagrid
- C#在一个form中改变另一个form中控件的内容、C#做登录界面并且密码显示为*
- Ext formPanel如何获得焦点
- linux下如何添加一个用户并且让用户获得root权限
- 在一个Activity里面的TextView上面添加网页链接,启动后到另一个Activity里面!
- 如何在对话框中获得文档的指针?
- android5.0,6.0第三方签名APP,在SElinux下,如何获得对一个内核节点的访问权限?
- 一个奇怪的指针问题,指针遍历如何结束?