请教:关于CFormView的问题!

muliu92 2005-01-18 07:36:27
我有两个派生自CFormView的类(都有自己的对话框资源), 其中一个是用CSplitterWnd的CreateView创建的,另一个调用CFormView::Create创建的。
前者方式创建会调用view类的OnInitUpdate(),而后者方式创建的则不会调用view类的OnInitUpdate()!

我看了MFC的源码,用前者方式创建也就是在CSplitterWnd::CreateView的最后send WM_InitUpdate message,而后者方式创建并不发送这个消息。

这是为什么啊?
难道用后者方式创建的view就不会接收到MFC框架给view类的WM_InitUpdate消息吗?
请高手指点!! 或是哪里有关于这方面的文章给介绍两篇!
...全文
89 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
stavck 2005-01-18
  • 打赏
  • 举报
回复
App类中的BOOL CMyApp::InitInstance()函数中

CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
NULL);//注意,要设成空,这样消息才能在各个视图中传递
AddDocTemplate(pDocTemplate);

程英杭 2005-01-18
  • 打赏
  • 举报
回复
主要原因是在帮定问题上 在CSplitterwnd里面肯定有个RunTimer_Class的,里面就和CFormView类发生关系了 这样发送的消息就知道接收者 而后面那个则没有这个的!
我的理解是这样的!但不一定正确

15,979

社区成员

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

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