CButtonSt 彈出選單子選單項禁 啟用方法

2021-09-25 23:52:28 字數 866 閱讀 6536

mfc 中使用cbuttonst 載入選單後,發現個很蛋疼的問題,沒有方法禁用其中的子選單項。

本想通過:

m_btn_use.getmenu()->enablemenuitem(id_rotary_param,mf_bycommand | mf_disabled | mf_grayed);

禁用選單欄子選單項,後發現cbuttonst 物件通過getmenu()方法獲取不到cmenu物件,

只能重寫getmenu函式。

cbuttonst  中新增getmenu方法:

cbuttonst .h中setmenu定義後新增

cmenu* getmenu();
cbuttonst .c中setmenu方法後新增

cmenu* cbuttonst::getmenu()

使用:

//m_btn_use為已經載入選單的cbuttonst物件,

cmenu* pmenu= m_btn_use.getmenu() ;

if(pmenu!=null) //啟用子選單

pmenu->enablemenuitem(id_rotary_param,mf_bycommand | mf_enabled);

else //禁用子選單

pmenu->enablemenuitem(id_rotary_param,mf_bycommand | mf_disabled | mf_grayed);

效果如圖: 

CButtonST中選單按鈕的構建

前言 基於mfc based dlg實現,環境 vc 6.0 正文 新建乙個mfc based dlg的工程,命名為 trymenu 1 實現效果如圖 一 工具條的建立與載入 1 首先資源檢視中新建乙個menu資源,如圖 其中整個menu資源的id號為 idr menu1,第乙個選單項 one 的i...

關於彈出選單

在用vc做一些軟體功能的時候,為了方便使用,通常會涉及到托盤程式設計。也就是在程式最小化的時候,會在右下角的托盤區域新增乙個圖示,這個圖示通常會支援彈出選單功能。問題就在這裡出現了,你也許會發現我們使用trackpopupmenu撥出的彈出選單,如果使用者在取消選擇的時候,在桌面任意地方單擊,這個選...

Air彈出選單

有時候,需要對某個控制項使用右鍵選單,右鍵選單的好處是可以隱藏,在需要的時候才開啟。下面是 建立自定義選單 新增右鍵選單 var rightmenu contextmenu new contextmenu rightmenu.hidebuiltinitems 有這句話就不顯示 列印 選單了 var ...