<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    Mfc資源消息的響應機制

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    Mfc消息的響應機制

     

    Mfc中有很多資源,如圖標資源,菜單資源,工具欄資源等等;那么,資源是如何進行消息響應和消息映射的呢?

    它們的流程是:

    某種資源——對應的ID號——消息映射——響應函數的聲明與實現

    下面我們以工具欄的資源響應為例:(多文檔的應用程序)

    1.       在工具欄資源增加一個圖標(隨便畫一下),雙擊它,設置它的資源ID為:ID_MYICON

    2.       在View類的.cpp文件中添加消息映射;

    找到BEGIN_MESSAGE_MAP()與END_MESSAGE_MAP()

    之間的代碼,添加消息映射語句

    ON_COMMAND(ID_MYICON,OnMyicon)

    其中,第一個參數是資源的ID號;第二個為消息響應的函數名,為了與MFC的習慣保持一致,我們將其命名為OnMyicon

    3.       消息響應函數的聲明

    在View類中增加成員函數afx_msg void OnMyicon();

    4.       消息響應函數的實現

    在View類的.cpp文件中實現OnMyicon()函數;

    void CXXXXXView::OnMyicon()

    {

             MessageBox("消息映射成功!");

    }

    菜單資源的消息響應機制于此完全相同;

     

    Windows操作系統中包括以下幾種消息:

    1、標準Windows消息:這種消息以WM_打頭。   

    2、通知消息   

    通知消息是針對標準Windows控件的消息。

    這些控件包括:按鈕(Button)、組合框(ComboBox)、編輯框(TextBox)、列表框(ListBox)、ListView控件、Treeview控件、工具條(Toolbar)、菜單(Menu)等。每種消息以不同的字符串打頭。(見附錄)   

    3、自定義消息  編程人員還可以自定義消息。

     

    附錄:

    從MSDN中,我們可以看查到很多的ON_開頭的,一下列舉其中一些示例

    User Button Handlers(按鈕)

    Map Entry

    Function Prototype

    ON_BN_CLICKED( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_BN_DISABLE( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_BN_DOUBLECLICKED( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_BN_HILITE( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_BN_PAINT( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_BN_UNHILITE( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    Combo Box Handlers(組合框)

    Map Entry

    Function Prototype

    ON_CBN_CLOSEUP( <id>, <memberFxn> )

    afx_msg void memberFxn( )

    ON_CBN_DBLCLK( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_CBN_DROPDOWN( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_CBN_EDITCHANGE( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_CBN_EDITUPDATE( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_CBN_ERRSPACE( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_CBN_KILLFOCUS( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_CBN_SELCHANGE( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_CBN_SELENDCANCEL( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_CBN_SELENDOK( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_CBN_SETFOCUS( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    Edit Control Handlers(編輯框)

    Map Entry

    Function Prototype

    ON_EN_CHANGE( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_EN_ERRSPACE( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_EN_HSCROLL( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_EN_KILLFOCUS( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_EN_MAXTEXT( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_EN_SETFOCUS( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_EN_UPDATE( <id>, <memberFxn> )

    afx_msg void memberFxn( );

    ON_EN_VSCROLL( <id>, <memberFxn> )

    afx_msg void memberFxn( );

     

     

     

    等等………………………………(參看MSDN)

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全