資源描述:
《VC編程實(shí)現(xiàn)IE風(fēng)格的界面》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、VC編程實(shí)現(xiàn)IE風(fēng)格的界面 使用過IE瀏覽器的朋友都知道IE界面上的扁平工具條、地址欄,扁平工具欄上的按鈕正常狀態(tài)下為扁平態(tài),按鈕上的圖像為灰色,當(dāng)鼠標(biāo)放在按鈕上時(shí),按鈕突起(這種狀態(tài)稱為手柄),并且其上的圖像變得鮮艷醒目,一些按鈕上還有漢字說明或標(biāo)有小黑三角的下拉按鈕,單擊時(shí)顯示下拉菜單,這些技術(shù)是怎么實(shí)現(xiàn)的呢,本文針對(duì)這些問題介紹了如何利用VC編程來實(shí)現(xiàn)它們?! E風(fēng)格的實(shí)現(xiàn)主要在主框架類的CMainFrame::OnCreate()實(shí)現(xiàn),它的主要思想如下:首先定義一個(gè)CReBar對(duì)象,用以作工具條、地址欄的容器,然后分別聲明圖像列表對(duì)象i
2、mg用于存儲(chǔ)工具欄上按鈕的熱點(diǎn)圖像和正常狀態(tài)下顯示的圖像。為了顯示扁平工具欄,需要用CreateEx()函數(shù)創(chuàng)建CToolBar對(duì)象m_wndToolBar,用ModifyStyle()函數(shù)將工具欄的風(fēng)格設(shè)為扁平類型,你不能用CToolBar::Create()或CToolBar::SetBarStyle()設(shè)置這種新風(fēng)格。CToolBar類不支持TBSTYLE_FLAT。要解決這個(gè)問題,必須繞過CToolBar類,使用CWnd::ModifyStyle()。工具欄對(duì)象調(diào)用SetButtonInfo()設(shè)置按鈕的風(fēng)格為TBSTYLE_DROPDOW
3、N,就可以將工具欄按鈕設(shè)置為附帶有下拉按鈕。至于按鈕帶有中文提示,用工具欄的SetButtonText()就可以輕松實(shí)現(xiàn)了。下面是實(shí)現(xiàn)IE風(fēng)格界面的部分代碼和注釋:intCMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct){ CReBarm_wndReBar;//聲明CReBar對(duì)象 CImageListimg;//聲明圖像列表對(duì)象 CStringstr; if(CFrameWnd::OnCreate(lpCreateStruct)==-1) return-1; if(!m_wndReBar.Cre
4、ate(this))//創(chuàng)建CReBar對(duì)象 { TRACE0('Failedtocreaterebar'); return-1;//failtocreate } if(!m_wndToolBar.CreateEx(this))//創(chuàng)建工具條對(duì)象 { TRACE0('Failedtocreatetoolbar'); return-1;//failtocreate } //setuptoolbarproperties m_wndToolBar.GetToolBarCtrl().SetButtonWidth(50,150); file:
5、//設(shè)置工具條上按鈕的最大、最小尺寸 m_wndToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS); file://工具條可以帶有下拉按鈕 img.Create(IDB_HOTTOOLBAR,22,0,RGB(255,0,255)); file://向圖像列表裝載熱點(diǎn)圖像資源,IDB_HOTTOOLBAR為熱點(diǎn)圖像資源ID m_wndToolBar.GetToolBarCtrl().SetHotImageList(&img);//工具條裝載熱點(diǎn)圖像 img.Detac
6、h(); img.Create(IDB_COLDTOOLBAR,22,0,RGB(255,0,255)); file://圖象列表裝載正常狀態(tài)的圖像資源,IDB_COLDTOOLBAR為圖像資源ID m_wndToolBar.GetToolBarCtrl().SetImageList(&img);//將圖像裝入工具條 img.Detach(); m_wndToolBar.ModifyStyle(0,TBSTYLE_FLAT
7、TBSTYLE_TRANSPARENT); file://工具條為扁平風(fēng)格 m_wndToolBar.SetButtons(N
8、ULL,9);//工具條上有9個(gè)按鈕 //setupeachtoolbarbutton file://以下分別對(duì)九個(gè)按鈕分別設(shè)置風(fēng)格和按鈕漢語提示 m_wndToolBar.SetButtonInfo(0,ID_BUTTON0,TBSTYLE_BUTTON,0); str.LoadString(IDS_BUTTON0); m_wndToolBar.SetButtonText(0,str); m_wndToolBar.SetButtonInfo(1,ID_BUTTON1,TBSTYLE_BUTTON,1); str.LoadString(IDS_BU
9、TTON1); m_wndToolBar.SetButtonText(1,str); m_wndToolBar.SetBu