About 对话框的处理过程?
是框架类从菜单获得消息,因为视图类没有处理,框架类把这个消息发给他的基类,那怎
么最终是由应用程序类处理的呢?
BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINF
O* pHandlerInfo)
{
// let the view have first crack at the command
if (m_wndView.OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))//视图类不处理
return TRUE;
// otherwise, do default handling
return CFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);//发给基类
}
但是:
void CMyPadApp::OnAppAbout()//最后怎么到这里来了???
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}
问题点数:100、回复次数:5Top
1 楼flyelf(空谷清音)回复于 2005-04-02 17:18:26 得分 10
这是在app中映射的一个WM_COMMANDTop
2 楼wangjianddy(~~~~>_<~~~~)回复于 2005-04-02 17:28:26 得分 30
不是那样的,当你点击菜单命令的时候,操作系统就把一个WM_COMMAND消息放到你的应用程序消息队列中,然后你的程序app用GetMessage获得这个消息,在根据映射处理这个消息。
菜单在哪个对话框或者窗口里都一样,菜单消息都是由app的GetMessage来获取接着分发的Top
3 楼Practise_Think(时代“过客”)回复于 2005-04-02 17:45:28 得分 10
OnAppAbout()那肯定有对应的ID消息与这个函数关联,你通过CTR+W来看看关联这个函数的消息吧!!Top
4 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-04-02 18:22:43 得分 10
OnAppAbout是菜单命令对应的消息函数Top
5 楼laiyiling(陌生人[MVP])回复于 2005-04-02 19:17:03 得分 40
消息的处理过程是FrameWindow-->ActiveView-->document-->app object 上一级不处理就给下一个,最后给defo默认的Top




