一、對話方塊中增加選單
1、 對話方塊中增加選單,只需要在對話方塊oninitdialog()函式中增加響應**即可:
cmenu menudlg;
menudlg.loadmenu(idr_menu_dlg);
setmenu(&menudlg);
也可以通過對話方塊資源,直接選擇選單id,無需增加任何**。
2、 對話方塊中的選單預設是無法響應on_update_command_ui訊息的,對於利用ccmdui類的setcheck()等函式設定的狀態無法響應,為了與框架中選單一致,需要在對話方塊中響應on_wm_initmenupopup訊息。
a) 在對話方塊類的.cpp檔案,新增乙個on_wm_initmenupopup入口到訊息對映中。
begin_message_map(ctestdlg, cdialog)
on_wm_initmenupopup()
end_message_map()
b) 在對話方塊類的.h檔案新增訊息函式宣告。
afx_msg void oninitmenupopup(cmenu *ppopupmenu, uint nindex,bool bsysmenu);
c) 在對話方塊類的.cpp檔案新增如下函式**(大部分**取自winfrm.cpp檔案的函式
cframewnd::oninitmenupopup):
二、對話方塊中增加工具欄
1、在資源中新增工具欄資源;
2、在對話方塊類中定義乙個工具欄變數;
3、在對話方塊的oninitdialog函式中create工具欄。程式如下:
在對話方塊類中定義工具欄成員變數:
c******* m_*******;
在oninitdialog函式中create:
if(!m_*******.createex(this,tbstyle_flat, ws_child|ws_visible|cbrs_top
|cbrs_gripper|cbrs_tooltips|cbrs_size_dynamic)
||!m_*******.load*******(idr_*******_graphics))
repositionbars(afx_idw_controlbar_first, afx_idw_controlbar_last, 0);
但要讓對話方塊中的工具欄響應update_command_ui訊息,做到按下保持的狀態僅僅過載update_command_ui訊息並使用setcheck是不行的,因為此時的工具欄上的按鈕屬性為普通的按鈕,可以通過下面的方法測試:
if(m_*******.getbuttonstyle(0) == tbbs_button)
必須新增以下的設定:
m_*******.setbuttonstyle(0,tbbs_checkbox);
m_*******.setbuttonstyle(1,tbbs_checkbox);
對於需要響應的按鈕都增加以上**。
(對於利用xtreme toolkit 介面庫,工具欄使用cxtp*******類建立,呼叫setbuttonstyle()函式進行設定可以省略)
在對話方塊中增加選單欄,工具欄,狀態列
1.加選單 在對話方塊的property對話方塊中style中選中system menu 再在property對話方塊中generic中加入選單 2.加工具欄 1。要增加乙個資源idr 1 2.記得加乙個成員變數 protected c m wnd 3.bool cmain oninitdialog...
給對話方塊新增選單 工具欄 狀態列
先建立乙個基於dialog 的程式,名字叫 dlgmenu 一 如何往基於dialog的程式新增選單 1.1 先新增選單 idr menu1 資源,並加上需要的選單項。1.2 編輯對話方塊資源idd dlgmenu dialog的屬性,在屬性對話方塊中選擇idr menu1即可。1.3 假如您不希望...
給對話方塊新增選單 工具欄 狀態列簡易方法
給對話方塊新增選單 工具欄 狀態列簡易方法 收藏 先建立乙個基於dialog 的程式,我給他起了個名字叫 dlgmenu 一 如何往基於dialog的程式新增選單 1.1 先新增選單 idr menu1 資源,並加上需要的選單項。1.2 編輯對話方塊資源idd dlgmenu dialog的屬性,在...