mfc下改變選單的文字

思考者Jack發表於2020-12-08

參考文章:https://blog.csdn.net/li_canhui/article/details/6636101

下面是自己實際操作後的結果。

第一步,載入選單:

CMenu m_ClearMenu;
m_ClearMenu.LoadMenu(IDR_MENU_FOUR_HEADS_PULL);

第二步,修改選單的文字:

CString strNormal,strDeep;
CString	strHead1,strHead2,strHead3,strHead4,strAllHeads;
CMenu *subMenu = m_ClearMenu.GetSubMenu(0);				//獲取選單中的第一個選單
subMenu->ModifyMenu(0,MF_BYPOSITION,NULL,strNormal);	//將字串賦值給第一個父選單
subMenu->ModifyMenu(1,MF_BYPOSITION,NULL,strDeep);		//將字串賦值給第二個父選單

m_ClearMenu.ModifyMenu(ID_POP_PULL_FOUR_HEAD1,MF_BYCOMMAND,ID_POP_PULL_FOUR_HEAD1,strHead1);	//將字串賦值給第一個子選單				
m_ClearMenu.ModifyMenu(ID_POP_PULL_FOUR_HEAD2,MF_BYCOMMAND,ID_POP_PULL_FOUR_HEAD2,strHead2);				
m_ClearMenu.ModifyMenu(ID_POP_PULL_FOUR_HEAD3,MF_BYCOMMAND,ID_POP_PULL_FOUR_HEAD3,strHead3);				
m_ClearMenu.ModifyMenu(ID_POP_PULL_FOUR_HEAD4,MF_BYCOMMAND,ID_POP_PULL_FOUR_HEAD4,strHead4);				
m_ClearMenu.ModifyMenu(ID_POP_PULL_FOUR_HEADS,MF_BYCOMMAND,ID_POP_PULL_FOUR_HEADS,strAllHeads);

//除了上面的父選單不需要選單項的ID之外,其他的均是對應的選單項的ID。

第三步,這裡是附加的功能說明,設定其中一項或幾項為不可點選狀態。

m_ClearMenu.EnableMenuItem(ID_POP_PULL_FOUR_HEAD4, MF_DISABLED);
m_ClearMenu.EnableMenuItem(ID_POP_PULL_FOUR_HEADS, MF_DISABLED);

完畢。

相關文章