青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-19  評論-2  文章-0  trackbacks-0

2009-9-2
======================
《深入解析MFC》筆記 6.MFC消息處理、消息映射
======================


    CCmdTarget和消息映射表
    -窗口消息
        3個部分:1)一個無符號整數,包含了消息的實際內容; 2)WPARAM—— 一個4字節的參數;3)LPARAM—— 一個4字節的參數
       
    MFC消息映射
        CCmdTarget類
        消息映射表數據結構:
                AFX_MSGMAP_ENTRY,表示消息映射表的實際入口:
                struct AFX_MSGMAP_ENTRY{
                    UINT nMessage;          //表示Windows消息。
                    UINT nCode;               //表示控件代碼或WM_NOTIFY代碼
                    UINT nID;                    //產生消息的控件ID
                    UINT nLastID;              //
                    UINT nSig;                   //表示用于處理消息的函數的簽名(signature)
                    AFX_PMSG pfn;           //指向處理消息的函數
                };
               
                typedef  void  (CCmdTarget::*AFX_PMSG) (void);
               
                struct AFX_MSGMAP{
                    const AFX_MSGMAP*  pBaseMap;                //指向另一個AFX_MSGMAP結構的指針(基類的消息映射表)
                    const AFX_MSGMAP_ENTRY*  lpEntries;        //
                };
                消息映射表基本上就是AFX_MSGMAP_ENTRY結構數組。
               
        消息映射宏
            DECLARE_MESSAGE_MAP、  BEGIN_MESSAGE_ MAP   和   END_MESSAGE_MAP.
            在類定義中使用DECLARE_MESSAGE_MAP意味著在類中定義了3種東西:
                1)一個名為_messageEntries 的 AFX_MSGMAP_ENTRY 結構數組;        (靜態成員)
                2)一個名為messageMap 的 AFX_MSGMAP;                                    (靜態成員)
                3)一個獲得類的消息映射表的函數(GetMessageMap())。
            #define BEGIN_MESSAGE_MAP(theClass, baseClass) \
                PTM_WARNING_DISABLE \
                    const AFX_MSGMAP* theClass::GetMessageMap() const \     
                            { return GetThisMessageMap(); } \
                    const AFX_MSGMAP* PASCAL theClass::GetThisMessageMap() \
                        { \
                            typedef theClass ThisClass;   \
                            typedef baseClass TheBaseClass;   \
                            static const AFX_MSGMAP_ENTRY _messageEntries[] =  \
                        {
                宏產生一個GetMessageMap()函數,該函數返回類的消息映射表指針。框架程序用GetMessageMap()來獲得類的消息映射表。
                然后宏產生填充AFX_MSGMAP結構的代碼。第一個域指向基類的消息映射表,同時創建一條到根對象的鏈表。
            第二個域是指向類自己的第一個消息映射表的入口。
                最后,宏產生實際的消息表,消息表實際上就是AFX_MSGMAP_ENTRY結構的表。
            #define END_MESSAGE_MAP() \
                {0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 } \
                ;
               
        MFC如何使用消息映射表
               
    ---------------------------------------            
    Command Routing(命令傳遞)
        ■ 若是一般的 Windows消息(WM_xxx),一定由派生類流向基類
        ■ 若是命令消息 WM_COMMAND
                Frame窗口: View    →  Frame窗口本身  →  CWinApp對象
                                      ↓
                                    View:  View本身 →  Document
                                                                            ↓           
                                                                     Document:  Document本身→ DocumentTemplate
           

 

 

posted on 2010-03-15 23:14 Euan 閱讀(925) 評論(0)  編輯 收藏 引用 所屬分類: windows
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲电影av在线| 欧美v日韩v国产v| 亚洲性线免费观看视频成熟| 亚洲高清视频在线| 亚洲国产美女精品久久久久∴| 在线成人亚洲| 99国内精品| 午夜精品久久久久久久久| 亚洲免费中文| 久久美女性网| 亚洲经典三级| 一区二区国产在线观看| 一区二区三区回区在观看免费视频| 亚洲综合三区| 久久综合网色—综合色88| 美女视频黄a大片欧美| 欧美日韩精品中文字幕| 国产偷久久久精品专区| 亚洲精品国产视频| 午夜在线精品偷拍| 欧美成人免费在线| 亚洲一区区二区| 欧美 日韩 国产一区二区在线视频 | 欧美一区二区啪啪| 免费成年人欧美视频| 国产精品一区二区久久| 亚洲精品日日夜夜| 欧美在线一二三区| 亚洲区免费影片| 欧美一区二区三区四区高清| 欧美韩日高清| 国产一区二区三区免费不卡| 一区二区三区视频观看| 欧美视频在线观看| 亚洲国产视频a| 久久精品日韩欧美| 亚洲美女色禁图| 久久久青草婷婷精品综合日韩| 欧美性猛片xxxx免费看久爱| 亚洲国产福利在线| 久久久久久9999| 一区二区av在线| 欧美a级理论片| 亚洲成色精品| 久久精品女人的天堂av| 久久久久久综合| 欧美日韩国产bt| 亚洲国产日韩欧美一区二区三区| 欧美在线视频二区| 亚洲视屏一区| 欧美色图五月天| 一本综合久久| 亚洲人成毛片在线播放女女| 久久久久久久网| 黄色欧美成人| 久久久人成影片一区二区三区观看 | 麻豆成人综合网| 午夜欧美大片免费观看| 国产精品日韩久久久| 亚洲一区二区三区午夜| 日韩小视频在线观看专区| 欧美屁股在线| 99精品99久久久久久宅男| 欧美激情一区二区三区成人 | 久久久久国色av免费看影院| 国产欧美一区二区三区国产幕精品| 亚洲主播在线观看| 亚洲一区二区在线播放| 国产精品免费网站在线观看| 亚洲欧美视频一区| 午夜精品偷拍| 激情综合中文娱乐网| 麻豆freexxxx性91精品| 老司机精品视频一区二区三区| 亚洲国产精品高清久久久| 亚洲黄色成人网| 欧美日韩国产经典色站一区二区三区| 一区二区三区毛片| 亚洲专区免费| 一区二区在线不卡| 亚洲国产精品免费| 欧美性一二三区| 久久精品夜色噜噜亚洲aⅴ| 久久av最新网址| 亚洲国产一区二区a毛片| 亚洲第一精品夜夜躁人人躁| 欧美日韩国产麻豆| 欧美一区二区三区在线| 久久久久免费视频| 欧美极品在线观看| 亚洲欧美日韩一区二区| 亚洲综合色在线| 性色av香蕉一区二区| 亚洲淫性视频| 国产精品一区二区久激情瑜伽| 久久久视频精品| 欧美成人综合网站| 亚洲欧美日韩综合aⅴ视频| 久久久一区二区三区| 一道本一区二区| 久久久久久精| 亚洲欧美日韩一区二区三区在线观看 | 亚洲国产网站| 国产精品美女久久久久aⅴ国产馆| 久久久91精品| 欧美视频一区二区| 农夫在线精品视频免费观看| 欧美午夜精品久久久久久人妖| 久久综合久久综合久久综合| 欧美久久久久久久| 蜜桃伊人久久| 国产欧美一区二区三区视频| 亚洲精品自在在线观看| 亚洲电影在线| 欧美在线观看视频| 午夜精品久久久久久99热软件| 欧美激情一区二区三区蜜桃视频| 久久成人亚洲| 国产精品蜜臀在线观看| 亚洲精选视频在线| 亚洲精品精选| 久久视频在线看| 欧美制服第一页| 国产精品久久久久久久久久妞妞 | 国产精品va| 亚洲精品一区二区三区av| 亚洲国产成人av| 久久精品卡一| 久久久精品2019中文字幕神马| 国产精品啊啊啊| 一本久久青青| 一区二区三区日韩精品视频| 欧美欧美天天天天操| 亚洲精品中文字幕女同| 一本综合精品| 欧美日韩视频不卡| 99视频精品免费观看| 一本久久综合亚洲鲁鲁| 欧美了一区在线观看| 亚洲精品一二区| 亚洲一区日韩| 国产精品美女一区二区| 亚洲在线一区| 欧美在线观看你懂的| 国产乱码精品| 久久国产精品久久久久久| 国产偷久久久精品专区| 久久久xxx| 欧美韩国日本综合| 99精品热6080yy久久| 欧美日韩国产精品专区| 一区二区三区高清| 性做久久久久久免费观看欧美| 国产精品午夜电影| 欧美在线观看一区二区| 欧美成人精品在线视频| 亚洲精品乱码久久久久久日本蜜臀| 欧美大色视频| 亚洲深夜福利视频| 久久精品国产视频| 亚洲激情婷婷| 欧美午夜精品久久久| 欧美亚洲色图校园春色| 欧美高清一区二区| av成人老司机| 国产精品亚洲综合一区在线观看 | 在线播放视频一区| 欧美激情在线狂野欧美精品| 一区二区福利| 欧美96在线丨欧| 国产精品99久久久久久久女警 | 欧美成人蜜桃| 亚洲一区免费网站| 欧美激情视频一区二区三区在线播放| 亚洲蜜桃精久久久久久久| 国产精品久久久免费| 久久久久久综合| 亚洲视频专区在线| 麻豆精品在线视频| 亚洲男人的天堂在线| 在线不卡免费欧美| 欧美性色aⅴ视频一区日韩精品| 久久久久久久欧美精品| 亚洲一区二区三区777| 欧美高清视频一区| 久久国产精品高清| 中文精品视频一区二区在线观看| 国产亚洲欧洲一区高清在线观看 | 亚洲日本成人| 久久九九热免费视频| 亚洲天堂av高清| 在线不卡免费欧美| 国产日韩欧美亚洲一区| 欧美日本中文字幕| 久久亚洲欧洲| 久久国产精品99国产| 亚洲欧美一区二区原创| 亚洲精品欧美日韩| 欧美激情精品久久久久久变态| 久久精品国产一区二区三|