我在ClassWizard中产生如下消息处理函数
ON_COMMAND(ID_FILE_NEW, OnFileNew)
ON_COMMAND(ID_FILE_CLOSE, OnFileClose)
...
上面这两个处理程序我放在主程序中
当我新建的时候能执行到我处理函数中OnFileNew
但是当我点击菜单中的关闭时不会执行到我的OnFileClose中,也不会执行到
void CChildFrame::OnClose() 这里来,但是当我点击子框架的右边的叉字关闭按钮时也不会执行到我的OnFileClose中,但是会执行到void CChildFrame::OnClose() 这里来。我现在想把菜单中关闭和叉字关闭按钮执行到同一个地方比如说OnFileClose里,能不能做到,如何来做?谢谢void CChildFrame::OnClose() 
{
// TODO: Add your message handler code here and/or call default

CMDIChildWnd::OnClose();
}

解决方案 »

  1.   

    可以在document类中处理这些消息
      

  2.   

    this function should be put in CMainFrame.
    or you use PretranslateMessage to deal with WM_COMMAND message (with ID_FILE_NEW,ID_FILE_CLOSE)
      

  3.   

    是的,文件的打开和关闭操作应该放到CMainFrame类中去做的,然后可以将其处理函数映射到子窗口中去。
      

  4.   

    CMainFrame中处理文件打开,关闭