MFC菜单的使用
?
?
1、? 創(chuàng)建彈出菜單:
(1)、利用向?qū)?#xff0c;創(chuàng)建一個(gè)基于單文檔的應(yīng)用程序;
(2)、在資源視圖中選中”menu”,鼠標(biāo)右鍵插入一新菜單IDR_POPMENU;
(3)、在IDR_POPMENU菜單中添加”彈出菜單”選項(xiàng),在”彈出菜單”下添加菜單命令”復(fù)制”、”粘貼”、”查找”、”測試”,分別修改其ID;
(4)、分別對(duì)四個(gè)選項(xiàng),添加消息處理函數(shù),選中某選項(xiàng),鼠標(biāo)右鍵單擊,選擇Add Event Handler,類的類型選中view,消息類型選擇COMMAND;
(5)、選擇Class View,選中view類,添加鼠標(biāo)右鍵單擊消息;
(6)、在此右鍵單擊消息中添加如下代碼即可:
CMenu?? menu;
??? ??? menu.LoadMenu(IDR_POPMENU);
??? ??? CMenu?? *pContextMenu=menu.GetSubMenu(0);
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x, point.y, AfxGetMainWnd());
2、創(chuàng)建動(dòng)態(tài)菜單:
(1)、利用向?qū)?#xff0c;創(chuàng)建一個(gè)基于單文檔的應(yīng)用程序;
(2)、在資源視圖中選中”menu”,鼠標(biāo)右鍵插入一新菜單IDR_DYN;
(3)、在IDR_DYN菜單中添加”動(dòng)態(tài)菜單”選項(xiàng),在”動(dòng)態(tài)菜單”下添加菜單命令”FIRST動(dòng)態(tài)菜單”、”SECOND動(dòng)態(tài)菜單”,分別修改其ID;
(4)、分別對(duì)兩個(gè)選項(xiàng),添加消息處理函數(shù),選中某選項(xiàng),鼠標(biāo)右鍵單擊,選擇Add Event Handler,類的類型選中CMainFrame,消息類型選擇COMMAND;
(5)、在資源視圖中,定位到IDR_MAINFRAME主菜單,添加新項(xiàng)”動(dòng)態(tài)菜單演示”選項(xiàng),在”動(dòng)態(tài)菜單演示”下添加兩個(gè)新項(xiàng)”添加動(dòng)態(tài)菜單”、”刪除動(dòng)態(tài)菜單”,修改ID;
(6)、添加”添加動(dòng)態(tài)菜單”消息處理函數(shù),類的類型選中CMainFrame,消息類型選擇COMMAND;添加如下代碼:
??? CMenu m_addMenu,*m_pMainmenu;
??? if (!m_addMenu.LoadMenu(IDR_DYN))
??? {
?????? MessageBox(_T("動(dòng)態(tài)菜單裝入失敗!"),_T("錯(cuò)誤"),MB_OK|MB_ICONERROR);
?????? return;
??? }
??? CString str=_T("自己的動(dòng)態(tài)菜單(&D)");
??? m_pMainmenu=AfxGetMainWnd()->GetMenu();
m_pMainmenu->InsertMenu(1,MF_POPUP|MF_BYPOSITION|MF_STRING,(UINT)m_addMenu.GetSubMenu(0)->m_hMenu,str);
??? m_pMainmenu->Detach();
??? m_addMenu.Detach();
DrawMenuBar();
(7)添加”刪除動(dòng)態(tài)菜單”消息處理函數(shù),類的類型選中CMainFrame,消息類型選擇COMMAND;添加如下代碼:
??? CMenu *m_pMainmenu;
??? CString str;
??? m_pMainmenu=AfxGetMainWnd()->GetMenu();
??? for (int i=m_pMainmenu->GetMenuItemCount()-1;i>=0;i--)
??? {
?????? m_pMainmenu->GetMenuString(i, str,MF_BYPOSITION);
?????? if (str==_T("自己的動(dòng)態(tài)菜單(&D)"))
?????? {
?????????? m_pMainmenu->DeleteMenu(i,MF_BYPOSITION);
?????????? break;
?????? }
??? }
??? m_pMainmenu->Detach();
DrawMenuBar();
3、創(chuàng)建若干對(duì)話框的菜單
(1)、利用向?qū)?#xff0c;創(chuàng)建一個(gè)基于對(duì)話框的應(yīng)用程序;
(2)、選中資源視圖,鼠標(biāo)右鍵插入ResourceàMenu,ID為IDR_DLG_MENU;
(3)、為IDR_DLG_MENU添加項(xiàng)目”對(duì)話框菜單”,然后在該項(xiàng)目下添加”文件菜單”、”運(yùn)行記事本菜單”、”退出應(yīng)用程序菜單”,并修改其ID;
(4)、在對(duì)話框?qū)傩源翱谥羞x中menu,設(shè)置為IDR_DLG_MENU;
(5)、分別對(duì)三個(gè)選項(xiàng),添加消息處理函數(shù),選中某選項(xiàng),鼠標(biāo)右鍵單擊,選擇Add Event Handler,類的類型選中Dlg類,消息類型選擇COMMAND;
(6)、在”運(yùn)行記事本菜單”消息處理函數(shù)中,添加如下代碼:
::ShellExecute(this->m_hWnd, "open","NOTEPAD.EXE", NULL,NULL, SW_SHOWNORMAL);
(7)、在”退出應(yīng)用程序菜單”消息處理函數(shù)中,添加如下代碼:
OnOK();
總結(jié)
- 上一篇: matlab神经网络工具箱函数汇总
- 下一篇: 计算机视觉相关网站