MFC中選單變灰的問題

2022-08-05 18:54:12 字數 816 閱讀 5868

mfc中選單變灰

方法1:有updatecmdui控制代碼時

定義乙個bool變數m_b來標誌選單項是否有效,

該選單項響應update_command_ui訊息,在訊息處理函式中pcmdui->enable(m_b);

以後你根據需要來設定m_b的值,就可以使選單是否可用。

在乙個函式中可以控制多個選單

方法2:沒有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); cframewnd::m_bautomenuenable //controls automatic enable and disable functionality for menu items. //cframewnd類中的bool型資料成員,預設為true。

//如果m_bautomenuenable設為true,

則如果某選單項在當前命令路徑中無法找到相應的命令訊息控制函式,則此時應用程式框架便禁用該選單項,並將該選單項設為灰色。 //如果m_bautomenuenable設為false,便可以禁止上敘自動禁用無控制函式選單項的特性。

易出錯不推薦使用

MFC 使選單項變灰

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

MFC中選單的命令響應順序

響應順序是 點選某選單項,框架類最先接到選單命令訊息。框架類把接收到得這個訊息交給它的子視窗,即檢視類。檢視類根據命令訊息對映機制查詢自身是否對此訊息進行了響應,如果響應了,就呼叫相應響應函式對這個訊息進行處理,訊息路由過程結束。如果檢視類未對此訊息響應,交給文件類,文件類同樣查詢自身是否對此訊息進...

專案中選單摺疊問題

思路 根據訪問的路徑動態的設定選單的摺疊。前提是同一級選單放大同一資料夾下面,根據資料夾的名字動態的設定選單的class屬性。例如 我的乙個url location.pathname獲取到除去ip與埠的位址 exam view outdepart outdepartempmanage.jsp fun...