MFC菜單——孫鑫第六課

1.消息:

標準消息
      除WM_COMMAND之外,所有以WM_開頭的消息。
      從CWnd派生的類,都可以接收到這類消息。
命令消息
      來自菜單、加速鍵或工具欄按鈕的消息。這類消息都以WM_COMMAND呈現。在MFC中,通過菜單項的標識(ID)來區分不同的命令消息;在SDK中,通過消息的wParam參數識別。
 從CCmdTarget派生的類,都可以接收到這類消息。
通告消息
      由控件產生的消息,例如,按鈕的單擊,列表框的選擇等均產生此類消息,爲的是向其父窗口(通常是對話框)通知事件的發生。這類消息也是以WM_COMMAND形式呈現。
      從CCmdTarget派生的類,都可以接收到這類消息。

2.動態創建菜單:

在MainFrame類的OnCreate()函數中添加:

CMenu menu;
 menu.CreatePopupMenu();
 GetMenu()->AppendMenu(MF_POPUP,(UINT)menu.m_hMenu,"Shen");
 menu.Detach();

插入菜單:

 CMenu menu;
 menu.CreatePopupMenu();
 //GetMenu()->AppendMenu(MF_POPUP,(UINT)menu.m_hMenu,"Shen");
 GetMenu()->InsertMenu(2,MF_BYPOSITION|MF_POPUP,(UINT)menu.m_hMenu,"Shen");
 menu.Detach();


添加菜單項:

menu.AppendMenu(MF_STRING,1,"Cakeman2");//末尾添加

 GetMenu()->GetSubMenu(0)->InsertMenu(ID_FILE_OPEN,MF_BYCOMMAND|MF_STRING,4,"Cakeman4");//指定位置添加菜單項

 

運行,筆者運行時,提示“計算機中丟失MFC42D.DLL”,將MFC使用共享鏈接庫改爲使用靜態連接庫即可。

3.

發佈了27 篇原創文章 · 獲贊 11 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章