CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

如何使非文档模板创建的文档类响应菜单消息?

楼主nx(nx)2003-11-04 16:42:55 在 VC/MFC / 界面 提问

我现在想不通过文档模板创建文档对象,并自行创建视图对象,添加到文档中,问题是,现在在我所创建的文档中无法响应菜单\工具栏中的按钮的消息,请问如何做能响应菜单/工具栏消息?  
  创建文档及视图的代码如下:  
  CRuntimeClass   *   pDocRC   =   RUNTIME_CLASS(CDebugApplicationObj);  
  CRuntimeClass   *   pViewRC   =   RUNTIME_CLASS(CTreeView);  
  if(pDocRC   &&   pViewRC)  
  {  
  CView   *   pView   =   (CView   *)pViewRC   ->CreateObject();  
  CDocument   *   pDoc   =   (CDocument   *)pDocRC   ->CreateObject();  
  if(pDoc   &&   pView)  
  {  
  pView   ->Create(NULL,NULL,AFX_WS_DEFAULT_VIEW,CRect(100,100,300,300),this,   0,NULL);  
  pDoc   ->AddView(pView);  
  }  
  }  
  为了测试,我暂时将这段代码放在了MDI   MainFrame的OnCrate函数中了.  
  如果我用文档模板创建上面的文档,则一切OK.感觉是因为有文档模板使消息无法达到CDebugApplicationObj类. 问题点数:0、回复次数:4Top

1 楼feiniaoliang(♂飞鸟良♀)回复于 2003-11-04 16:48:58 得分 0

还要改消息的印射!~~~Top

2 楼nx(nx)回复于 2003-11-04 19:49:34 得分 0

我没有修改消息映射.  
  我觉得问题很可能出在没有用文档模板上。后来想了想,觉得是否应该重载CMainFrame的OnCmdMsg函数,在里面添加我的文档的   OnCmdMsg以处理命令消息?  
  学习中。。。Top

3 楼nx(nx)回复于 2003-11-05 09:32:32 得分 0

to   feiniaoliang(飞鸟良):  
  怎么改消息映射?Top

4 楼nx(nx)回复于 2003-11-05 12:14:14 得分 0

部分解决了:  
  昨晚看了一下命令消息在文档视图中的传递路径:  
  菜单->MDIMainFrame->ChildFrame->ActiveView->Document->DocTemplate  
                            \--------/         \---------------------------------/  
                      |  
                    \|/  
                  CWinApp  
   
  我重载了主框架的OnCmdMsg  
  BOOL   CMainFrame::OnCmdMsg(UINT   nID,   int   nCode,   void*   pExtra,   AFX_CMDHANDLERINFO*   pHandlerInfo)    
  {  
  //   TODO:   Add   your   specialized   code   here   and/or   call   the   base   class  
  BOOL   bRes   =   CMDIFrameWnd::OnCmdMsg(nID,   nCode,   pExtra,   pHandlerInfo);  
  if(!bRes   &&   m_pTestDoc) //add   by   nx  
  bRes   =   m_pTestView   ->OnCmdMsg(nID,   nCode,   pExtra,   pHandlerInfo);  
  return   bRes;  
  //return   CMDIFrameWnd::OnCmdMsg(nID,   nCode,   pExtra,   pHandlerInfo);  
  }  
  可以收到菜单消息了,但是视图还收不到鼠标消息.Top

相关问题

  • 文档模板类在哪?
  • 模板转成文档
  • 关于word模板,能否实现:右键菜单->新建->(自定义格式)word文档->运行WinWord->打开这个自定义格式的空文档。
  • 如何解决两个不同的视图对应同一个文档,其中一个视图下的菜单命令不能响应。
  • 寻找文档模板,来者有分!
  • 如何获得当前文档模板
  • 如何删除文档模板?
  • 谁有网站的文档模板?
  • 多文档模板的解决
  • 为什么菜单无事件响应?

关键词

  • 文档
  • 模板
  • 视图
  • 消息
  • null
  • 响应
  • oncmdmsg
  • 菜单
  • pdocrc
  • pviewrc

得分解答快速导航

  • 帖主:nx

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo