資源描述:
《VC MFC中使用工具欄控件詳解》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、VCMFC工具欄(CToolBar)控件VCMFC工具欄(CToolBar)控件工具欄工具欄控件在控件面板里沒(méi)有對(duì)應(yīng)的選項(xiàng)(圖標(biāo)),但有一個(gè)工具欄控件類CToolBar,所以我們?nèi)绻獎(jiǎng)?chuàng)建一個(gè)工具欄控件并顯示在窗口里的話,只能用代碼來(lái)完成,事實(shí)上任何一種控件,都可以用代碼創(chuàng)建,如CButton按鈕類,現(xiàn)舉一個(gè)用代碼創(chuàng)建按鈕控件并顯示在窗口里的例子。CButton類的Create成員函數(shù)可以創(chuàng)建一個(gè)按鈕控件,這個(gè)函數(shù)的格式如下:BOOLCButton::Create(?????LPCTSTRlpszCaption,//按鈕顯示的文本?????DWORDd
2、wStyle,//按鈕樣式?????constRECT&rect,//按鈕控件顯示的區(qū)域(大?。┫鄬?duì)于父窗口?????CWnd*pParentWnd,//按鈕的父窗口(按鈕屬于哪個(gè)窗口)?????UINTnID//指明按鈕控件ID號(hào)????);這個(gè)函數(shù)的第二個(gè)參數(shù)dwStyle是按鈕控件的樣式,也就是在可視化添加按鈕控件時(shí),右擊按鈕控件,選擇屬性,之后會(huì)彈出一個(gè)對(duì)話框,這個(gè)對(duì)話框有一個(gè)樣式的選項(xiàng),該參數(shù)即對(duì)應(yīng)這個(gè)樣式。好了,了解了上面這些我們就來(lái)動(dòng)態(tài)創(chuàng)建一個(gè)按鈕吧,首先在對(duì)應(yīng)話類里添加一個(gè)按鈕類成員變量CButtonm_Button;然后在對(duì)話框編輯區(qū)
3、里給對(duì)話框添加一個(gè)按鈕控件(單擊這個(gè)按鈕創(chuàng)建按鈕控件),然后添加這個(gè)按鈕控件單擊消息處理函數(shù),并在函數(shù)添加以下語(yǔ)句:?RECTButtonRect;//按鈕控件顯示的區(qū)域(大?。┫鄬?duì)于父窗口?ButtonRect.left=10;?ButtonRect.top=10;?ButtonRect.right=80;?ButtonRect.bottom=30;?m_Button.Create("動(dòng)態(tài)創(chuàng)建",WS_CHILD,ButtonRect,this,1115);?m_Button.ShowWindow(SW_SHOW);//顯示按鈕控件知道了怎樣動(dòng)態(tài)創(chuàng)建
4、按鈕控件,我們就來(lái)創(chuàng)建工具欄控件。首先在對(duì)話類中添加一個(gè)CToolBar類成員變量CToolBarm_Toolbar;然后在對(duì)話類文件中定義工具欄命令I(lǐng)D#defineID_BUTTON1???501#defineID_BUTTON2???502#defineID_BUTTON3???503接著我們就要?jiǎng)?chuàng)建工具欄資源了,用于工具欄按鈕的顯示圖片方法是進(jìn)入ResourceView(資源視圖選項(xiàng)卡),再隨便選中一個(gè)選項(xiàng),右擊選擇插入,在彈出的對(duì)話框里選中Toolbar,點(diǎn)新建。接著創(chuàng)建三個(gè)按鈕。如下圖所示:第9頁(yè)共9頁(yè)VCMFC工具欄(CToolBar)控
5、件好了,下面把三個(gè)按鈕ID號(hào),改成上面宏定義的ID號(hào),如果要改變“天”字按鈕,選中該按鈕,然后回車鍵,就會(huì)彈出一個(gè)對(duì)話框,在ID項(xiàng)填入ID_BUTTON1,就可以了。接著依次把兩個(gè)ID號(hào)改為ID_BUTTON2,ID_BUTOON3。在這個(gè)對(duì)話框里也可以改變工具欄按鈕的大小。接下來(lái)我們樣在對(duì)話框類的OnInitDialog函數(shù)里的所有代碼之后,returnTRUE;之間添加以下語(yǔ)句:????m_Toolbar.Create(this);//創(chuàng)建工具欄控件????m_Toolbar.LoadToolBar(IDR_TOOLBAR1);//裝載工具欄資源?
6、CRectrect(100,100,200,200);//?m_Toolbar.MoveWindow(rect);//移動(dòng)工具欄在父窗口的位置?m_Toolbar.ShowWindow(SW_SHOW);//顯示工具欄但這樣顯示工具欄不是很方便,特別是當(dāng)窗口大小改變后,還要計(jì)算工具欄在窗口中的位置,有沒(méi)有什么方法,可以根據(jù)窗口大小自動(dòng)調(diào)整工具欄到合適的位置呢?答案是肯定的,RepositionBars函數(shù)可以做到。實(shí)現(xiàn)方法如下,把上面的語(yǔ)句換成下面的:?m_Toolbar.Create(this);//創(chuàng)建工具欄控件????m_Toolbar.Load
7、ToolBar(IDR_TOOLBAR1);//裝載工具欄資源?//該函數(shù)用于顯示工具欄,并根據(jù)窗口大小自動(dòng)調(diào)整工具欄的位置?RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);?而響應(yīng)工具欄按鈕單擊消息,跟前面介紹的添加按鈕單擊消息差不多,進(jìn)入類向?qū)?,找到要添加的工具欄按鈕ID,添加COMMAND消息響應(yīng)函數(shù),如下圖:第9頁(yè)共9頁(yè)VCMFC工具欄(CToolBar)控件工具欄按鈕上顯示真彩位圖上面的例子有一個(gè)缺陷,那就是工具欄按鈕顯示的圖形,不能超過(guò)256色,如果我想在
8、工具欄按鈕顯示真彩位圖,上面的方法顯示是無(wú)法實(shí)現(xiàn)的,那這個(gè)功能是如何實(shí)現(xiàn)呢?SetImageL