VC 對話方塊程式加工具欄

2021-04-17 19:53:05 字數 1884 閱讀 2753

我們先建立乙個基於dialog 的程式,我給他起了個名字叫:dlgmenu*******。

一、如何往基於dialog的程式新增選單

[1.1]先新增選單(idr_menu1)資源,並加上需要的選單項。

[1.2]編輯對話方塊資源idd_dlgmenu*******_dialog的屬性,在屬性對話方塊中選擇idr_menu1即可。

[1.3]假如您不希望在對話方塊屬性中直接設定選單,而通過**在程式中動態生成可以採用如下方法:

[1.3.1]在cdlgmenu*******dlg類聲名中新增成員變數cmenu m_menu

再在cdlgmenu*******dlg::oninitdialog() 中新增如下**:

//載入選單m_menu.loadmenu(idr_menu1);//設定當前選單setmenu(&m_menu);//當你不需要選單時可以用 setmenu(null);來取消當前選單
二、如何往基於dialog的程式新增工具欄

[2.1]先新增工具欄(idr_*******1)資源,並畫好各個按鈕。

[2.2]在cdlgmenu*******dlg類聲名中新增成員變數 c******* m_wnd*******;

[2.3]在cdlgmenu*******dlg::oninitdialog() 中新增如下**

//新增乙個平面工具條if (!m_wnd*******.createex( this,tbstyle_flat ,  ws_child | ws_visible | cbrs_align_top | cbrs_gripper | cbrs_tooltips,    crect(4,4,0,0)) ||	!m_wnd*******.load*******(idr_*******1) )m_wnd*******.showwindow(sw_show);repositionbars(afx_idw_controlbar_first, afx_idw_controlbar_last, 0);
三、為工具欄新增工具提示

[3.1] 在cdlgmenu*******dlg類定義中手工新增訊息對映函式的定義,如下黑體部分

//}afx_msg	declare_message_map()

[3.2] 在cdlgmenu*******dlg.cpp新增函式的實現**

//工具欄提示bool cdlgmenu*******dlg::ontooltiptext(uint, nmhdr* pnmhdr, lresult* presult)		if (nid != 0) //不為分隔符			else		#else		if (pnmhdr->code == ttn_needtexta)				else		#endif				*presult = 0;				// 使工具條提示視窗在最上面		::setwindowpos(pnmhdr->hwndfrom, hwnd_top, 0, 0, 0, 0,swp_noactivate|			swp_nosize|swp_nomove|swp_noownerzorder); 		return true;	}	return true;}
[3.3] 在cdlgmenu*******dlg.cpp中新增訊息對映,請看如下**中的黑體部分
begin_message_map(cdlgmenu*******dlg, cdialog)	//}afx_msg_mapend_message_map()

四、其它

為了使你的程式看起來更酷,還可以在cdlgmenu*******dlg::onpaint()中修改**實現dialog 填充顏色。

cpaintdc dc(this);crect rect; getclientrect(rect); dc.fillsolidrect(rect, rgb(60,110,170));

vc對話方塊中新增工具欄

轉http www.programfan.com blog article.asp?id 27914 1 新增工具欄資源id為idr 2 在對話方塊的類定義中加 c m 3 在oninitdialog中或其它合適的訊息響應中加如下 函式可檢視msdn m create this 建立工具欄 m lo...

VC 之對話方塊中新增工具欄

1 新增工具欄資源id為idr 2 在對話方塊的類定義中加 c m 3 在oninitdialog中或其它合適的訊息響應中加如下 函式可檢視msdn 01m create this 建立工具欄 02m load idr 載入工具欄 03 04 得出控制項條大小.05crect rect 06crec...

模式對話方塊非模式對話方塊新增工具欄 選單 狀態列總結

要使選單 工具欄按鈕響應同乙個事件只需要將兩者id號設定為相同即可 我在這裡主要說明怎樣使兩者的on update command ui命令得到一致的響應 1 無論是模態對話方塊還是非模態對話方塊,要更新選單與工具按鈕的狀態,即添on update command ui訊息響應。但是,結果出乎我們意...