读书人

获取Runtime_Class(CView)句柄有关问题

发布时间: 2012-08-22 09:50:35 作者: rapoo

获取Runtime_Class(CView)句柄问题
正在做一个MFC的程序,遇到了这个问题,因为程序需要,于是用下面的代码创建子窗口:

m_PDoc=new CDoc();
m_PChildFrame2=new CChildFrame2();
CCreateContext context;
context.m_pNewViewClass=RUNTIME_CLASS(CView2);
context.m_pCurrentDoc=m_PDoc;
if(m_PChildFrame2->Create(NULL,NULL,WS_CHILD | WS_VISIBLE | WS_OVERLAPPEDWINDOW, CRect(0,0,860,500),NULL,&context))
return;
m_PChildFrame2->ShowWindow(SW_SHOWMAXIMIZED);
m_PChildFrame2->InitialUpdateFrame(NULL,true);

//CDOC继承自CDocument ,CChildFrame2继承自CMDIChildWnd,CView2继承自CView

现在要从CChildFrame2中发送消息到CView2,问题出来了,在CChildFrame2中用 this->GetActiveView()返回NULL,但是此时视图已经处于显示状态。在主框架中用GetActiveFrame(),再用 GetActiveView()还是为NULL。


[解决办法]
设定一个全局变量CView2 pView;
在CView2初始化的时候加入pView = this;
然后再在CChildFrame2中使用this->SendMessage(。。。);
[解决办法]
加个句柄判断呢?m_hWnd
this->GetActiveView()->m_hWnd
GetActiveFrame()->m_hWnd

再试下这个函数
GetActiveWindow()->m_hWnd

请帮我顶顶。。。谢谢
http://topic.csdn.net/u/20090724/11/6e4ea566-f091-48f7-8772-3d83c4cbbbad.html
[解决办法]
CView2 是否创建成功...
[解决办法]
在CView2(或CView如果没有重载的话)的OnInitialUpdate在函数内设置断点。

如果没有运行到OnInitialUpdate函数内部,说明CView2创建失败

读书人网 >VC/MFC

热点推荐