首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

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

获取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创建失败

热点排行