MFC 使選單項變灰

2021-06-03 06:33:19 字數 589 閱讀 7272

一、沒有updatecmdui控制代碼時

mfc中預設的習慣是當沒有updatecmdui控制代碼時程式是使能(enable)選單,選單自動變成使能,只要關掉預設值就可以了,把下面的**加入你的程式

cmainfrm::cmainfrm

然後在訊息響應函式中新增如下**:

cmenu* m_menu = getmenu();

cmenu* submenu = m_menu->getsubmenu(0);

submenu->enablemenuitem(id_file_new, mf_bycommand | mf_grayed);

一、有updatecmdui控制代碼時

在框架中新增選單id的on_update_command_ui訊息,在相應函式引數中會有「ccmdui* pcmdui」這個引數,新增如下**:

pcmdui->enable(false);

就可是這個選單變灰顯

getdlgitem(id_paste)->enablewindow(false);  

cmenu   menu;  

if(menu.loadmenu(idr_***_menu))  

選單項的禁用變灰解決方法

1 問題描述 今天在做基於對話方塊的mfc程式時,根據條件禁用了某一選單項 測試發現該選單項確實功能無效,但是沒有變灰的效果。2 解決方法 根據網上資料,對於視 檔類mfc程式,在主框架類cmainframe的建構函式中把成員變數m bautomenuenable false就可以解決問題了。但是基...

MFC自學(選單項)

一 選單的設計 選單是作為一種資源定義的,單擊 resourse view 資源檢視,在開啟的視窗裡的 menu 下就能進行視覺化編輯 二 讀取選單字串和新增操作 todo 在此新增命令處理程式 cmenu pmenu null int icout 1 操作一 讀取頂級選單名稱 pmenu cmai...

遍歷選單項

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