日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

MFC菜单的使用

發(fā)布時(shí)間:2023/11/27 生活经验 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC菜单的使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

?

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é)

以上是生活随笔為你收集整理的MFC菜单的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

歡迎分享!

轉(zhuǎn)載請說明來源于"生活随笔",并保留原作者的名字。

本文地址:MFC菜单的使用