MFC自學(選單項)

2021-05-26 17:20:16 字數 1762 閱讀 2268

一   選單的設計

選單是作為一種資源定義的,單擊「resourse view」資源檢視,在開啟的視窗裡的「menu」下就能進行視覺化編輯

二  讀取選單字串和新增操作

// todo: 在此新增命令處理程式**

cmenu* pmenu = null;

int icout = -1;

//操作一:讀取頂級選單名稱

pmenu = ((cmainframe*)getparentframe())->getmenu();//獲得主選單位址

icout = pmenu->getmenuitemcount();//獲得頂級選單數

for (int i=0; i

//輸出

messagebox(strr,mb_ok);

}//操作二:讀取二級選單名稱

//獲得二級選單的位址,iindex_1為此二級選單的一級選單的偏移量,注意分隔符也要算上

//如:要取第乙個頂級選單下的某選單,則iindex_1為0

int iindex_1 = 0; 

pmenu = ((cmainframe*)getparentframe())->getmenu()->getsubmenu(iindex_1);

icout = pmenu->getmenuitemcount();

for (int i=0; i

messagebox(strr,mb_ok);

}//操作三:新建頂級選單,加在最後位置

pmenu = ((cmainframe*)getparentframe())->getmenu();

((cmainframe*)getparentframe())->drawmenubar();  //注意重新整理選單

//操作四:新建二級選單

pmenu = ((cmainframe*)getparentframe())->getmenu()->getsubmenu(0);

((cmainframe*)getparentframe())->drawmenubar();

//操作五:新建頂級選單,插入到指定位置

int iindex_2 = 2; 

pmenu = ((cmainframe*)getparentframe())->getmenu();

pmenu->insertmenu( iindex_2, mf_byposition, mf_string | mf_popup, _t("新建頂級選單"));

((cmainframe*)getparentframe())->drawmenubar();

//操作六:新建二級選單,插入到指定位置

int iindex_3_a = 0; 

int iindex_3_b = 2; 

pmenu = ((cmainframe*)getparentframe())->getmenu()->getsubmenu(iindex_3_a);

//方式一:通過偏移量

pmenu->insertmenu(iindex_3_b, mf_byposition, mf_string | mf_popup, _t("新建二級選單"));

//方式一:通過id號

pmenu->insertmenu( id_file_mru_file1, mf_bycommand, mf_string, _t("新建二級選單"));

((cmainframe*)getparentframe())->drawmenubar();

三  程式選單加圖示

待續

MFC 使選單項變灰

一 沒有updatecmdui控制代碼時 mfc中預設的習慣是當沒有updatecmdui控制代碼時程式是使能 enable 選單,選單自動變成使能,只要關掉預設值就可以了,把下面的 加入你的程式 cmainfrm cmainfrm 然後在訊息響應函式中新增如下 cmenu m menu getme...

遍歷選單項

遍歷任何窗體的menuitem 用了兩個多小時 略做修改,就可以實現其他功能,getmenuiteminfo提供的資訊足夠用了 procedure explorermenuitem menuhandle thandle varmenuindex integer menucaptionarray ar...

選單項引數

引數一 選單項 引數二 mf bycommand 表明 引數一 給出了選單項的識別符號。如果mf bycommand和mf position都沒被指定,則mf bycommand為預設標誌。mf byposition 表明 引數一 給出了選單項的以零為基準的相對位置。mf disabled 表明選單...