VC 的選單控制和自繪選單

2021-04-08 16:11:28 字數 959 閱讀 9784

選單控制

為什麼即使呼叫enablemenuitem選單項後,選單項還處於禁止狀態  

需要將cframewnd:: m_bautomenuenable設定為false,如果該資料成員為true(預設值),工作框將自動地禁止沒有on_update_command_ui或者on_command的選單項。

//disable mfc from automatically disabling menu items.

m_bauomenuenable=false;

//now enable the menu item.

cmenu* pmenu=getmenu ();

assert_valid (pmenu);

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

如何給系統

選單新增乙個選單項  給系統

選單新增乙個選單項需要進行下述三個步驟:

首先,使用resource symbols對話(在view選單中選擇resource symbols...

可以顯示該對話)定義選單項id,該id應大於0x0f而小於0xf000;

其次,呼叫cwnd::getsystemmenu獲取

系統系統

系統選單項時使用者應進行檢測。使用classwizard處理

wm_syscommand訊息並檢測使用者選單的nid引數:

void cmainframe:: onsyscommand (uint nid,lparam lparam)

else

cmdiframewnd:: onsyscommand (nid, lparam);

}最後,乙個設計良好的ui應用

程式應當在

系統選單項加亮時在狀態條顯示乙個幫助資訊,這可以通過增加乙個包含

系統檔案

vc

不使用HOOK實現系統選單的自繪

這篇文章的作者很大程度上簡化了選單的自繪,缺陷是沒有實現系統選單的自繪,第二次彈出系統選單的時候才開始自繪,有時候一直都是預設的系統選單,不穩定。問什麼第一次彈出的時候沒有自繪?那我要是在wm initmenu和wm initmenupopup子前的訊息中就修改系統選單項可不可以?答案是可以的。我們...

自繪選單Menu字型改變大小

delphi 自繪選單menu字型改變大小 menu選單的屬性面板是沒有font屬性的,可以通過寫 來改變選單字型大小。窗體上放一mainmenu1,包含的選單項為menuitem1,menuitem2.設定為mainmenu的ownerdraw為true,menuitem1的ondrawitem事...

VC 動態加入和刪除選單的方法

在應用程式中,往往要根據當前的操作來增加相應的選單。動態增加選單的方法有多 種,本文只講述利用資源編輯器預建立選單資源,然後在程式執行中動態加入 或刪 除 到主選單中去的方法。在應用程式中,往往要根據當前的操作來增加相應的選單。動態增加選單的方法有多 除 到主選單中去的方法。resourecview...