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.