VC 實現選單項及工具欄按鈕同步禁用與啟用

2021-09-01 07:34:21 字數 852 閱讀 3713

也許太簡單了,搜了n久,問了n多人,都沒有找到解決異常的辦法。

vc(6.0-2010)中已經指明update_command_ui就是用來設定選單及命令按鈕的狀態的。

完全沒有必要這樣(會產生異常):

cmenu* menu =getmenu();//經驗證vc6.0中應該是 cmenu* menu =afxgetmainwnd()->getmenu();

cmenu* submenu =menu->getsubmenu(1);

submenu->enablemenuitem(1, mf_byposition|mf_disabled);

同時還得在cmainframe的建構函式或者oncreate中this->m_bautomenuenable = false;

當選單id和*******按鈕id一致時,僅選單生效,並不能同步。

以上方法在vc2010中根本無法用。

簡單方法如下:

假設選單id為id_zoom_in,

在cxxview類中建立bool型別的成員變數m_iszoominenabled,用來標識選單

或工具欄按鈕的啟用與禁用狀態。在需要禁用的地方將m_iszoominenabled置為false,在需要啟用的地方將

m_iszoominenabled置為true就可以了,同時在id上點右鍵並在cxxview類(也可以是其它類)中新增訊息類

型為update_command_ui的事件。

void cxxview::onupdatezoomin(ccmdui *pcmdui)

若要選單與工具欄按鈕同步,僅需選單項id與工具欄按鈕id一致就可以了。

以上方法在vc的sdi與mdi工程中都可以。

源程式:

eclipse 刪除選單項和工具欄中不用的項

import org.eclipse.jface.action.icoolbarmanager import org.eclipse.jface.action.imenumanager import org.eclipse.swt.graphics.point import org.jtang.sy...

MFC選單欄及工具欄實現

mfc選單欄實現 在資源檢視中,右鍵工程名.rc 新增資源,選擇menu。對menu設定id,並對menu選單進行設定 即新增選單欄的名字 在c dlg.h中,新增cmenu m menu 在c dlg.c的初始化中,新增m menu.loadmenu idr menu1 idr menu1 set...

VC 為工具欄新增按鈕

假設工具欄有兩個按鈕,為每個按鈕新增圖示和文字 1.新建乙個單文件程式,將準備好的圖示資源 32 32 複製到res資料夾.2.在資源中開啟工具欄編輯器,刪除 del 原有的點陣圖和多餘的按鈕 將按鈕拖出工具欄即可刪除 並為每個按鈕修改id 雙擊 比如id btn1 id btn2,可在prompt...