八宝书库 > 文学其他电子书 > 深入浅出MFC第2版(PDF格式) >

第48部分

深入浅出MFC第2版(PDF格式)-第48部分

小说: 深入浅出MFC第2版(PDF格式) 字数: 每页4000字

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






                    CCmdTarget::OnCmdMsg  : 



                    { 



                    BOOL CCmdTarget::OnCmdMsg(UINT nID; int nCode) 

                    { 

                        cout lpEntries; 

                                printlpEntries(lpEntry); 

                        } 



                         return FALSE; // not handled 



                    } 



196 


…………………………………………………………Page 259……………………………………………………………

                                                 第3章    MFC 六大關鍵技術之模擬 



这是一个走访消息映射表的动作。注意,GetMessageMap 也是个虚拟函数(隐藏在 



DECLARE_MESSAGE_MAP 宏定义中),所以它所得到的消息映射表将是this                       (以 



 目前而言是pMyVie w )所指对象的映射表。于是我们得到了这个结果: 



pMyFrame received a WM_MAND; routing path and call stack: 

AfxWndProc() 

AfxCallWndProc() 

CWnd::WindowProc() 

CFrameWnd::Onmand() 

CWnd::Onmand() 

CFrameWnd::OnCmdMsg() 

CFrameWnd::GetActiveView() 

CView::OnCmdMsg() 

CCmdTarget::OnCmdMsg() 

 1221    CMyView 

 122    CView 

 12    CWnd 

 1    CCmdTarget 



如果在映射表中找到了对应的消息,就调用对应的处理例程,然后也就结束了二万五千 



里长征。如果没找到,长征还没有结束,这时候退守回到CView::OnCmdMsg ,调用 



CDocument::OnCmdMsg  : 



BOOL CDocument::OnCmdMsg(UINT nID; int nCode) 

 { 

    cout  CCmdTarget::OnCmdMsg  

                        GetMessageMap(); 



for(; pMessageMap != NULL;。。。)          CView::OnCmdMsg 

 for(; pMessageMap != NULL;。。。)          CView::OnCmdMsg 

{  。。。  } 

 {  。。。  } 

                                  or         CWnd::OnCmdMsg ………》 CCmdTarget::OnCmdMsg               

                                             CDocument::OnCmdMsg 



                                        CDocument::OnCmdMsg 

                                         CDocument::OnCmdMsg 

                                  or 

                                             CCmdTarget::OnCmdMsg ………》 CCmdTarget::OnCmdMsg  



                                        CCmdTarget::OnCmdMsg(。。。) 

                                         CCmdTarget::OnCmdMsg(。。。) 

                                             // walking the message map。 

                                              // walking the message map。 

                                             AFX_MSGMAP* pMessageMap = GetMessageMap(); 

                                              AFX_MSGMAP* pMessageMap = GetMessageMap(); 

                                             for(; pMessageMap != NULL;。。。)  { 。。。 } 

                                              for(; pMessageMap != NULL;。。。)  { 。。。 } 



  图3…7 当CMyFrameWnd 对象获得一个WM_MAND,所引起的Frame8 



            函数调用次序。 



                                                                                                               199 


…………………………………………………………Page 262……………………………………………………………

                     第篇  勿在浮砂築高台 



                      CObject                                       CObject 

                       CObject                                       CObject 



                          CCmdTarget                                    CCmdTarget 

                           CCmdTarget                                   CCmdTarget 



                              CWinThread                                   CWinThread 

                              CWinThread                                    CWinThread 



                                 CWinApp                                       CWinApp 

                                  CWinApp                                       CWinApp 



                                     CMyWinApp                                    CMyWinApp 

                                     CMyWinApp                                     CMyWinApp 



                              CWnd                                         CWnd 

                              CWnd                                          CWnd 



                                 CView                                         CView 

                                  CView                                         CView 



                                     CMyView                                      CMyView 

                                     CMyView                                      CMyView 



                                 CFrameWnd                                     CFrameWnd 

                                  CFrameWnd                                     CFrameWnd 



                                     CMyFrameWnd                                  CMyFrameWnd 

                                     CMyFrameWnd                                   CMyFrameWnd 



                              CDocument                               

返回目录 上一页 下一页 回到顶部 0 0

你可能喜欢的