日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

【MFC】带图标的工具栏

發(fā)布時間:2024/4/24 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【MFC】带图标的工具栏 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

00. 目錄

文章目錄

    • 00. 目錄
    • 01. 案例概述
    • 02. 開發(fā)環(huán)境
    • 03. 關(guān)鍵技術(shù)
    • 04. 程序設(shè)計
    • 05. 秘笈心法
    • 06. 源碼下載
    • 07. 附錄

01. 案例概述

默認情況下,MFC中提供的工具欄只能顯示簡單的圖像。在實際開發(fā)過程中如何在工具欄中顯示自定義圖標(biāo)呢?本案例實現(xiàn)了一個帶有圖標(biāo)的工具欄按鈕,效果如下圖所示。

02. 開發(fā)環(huán)境

系統(tǒng)環(huán)境:Windows 10

開發(fā)環(huán)境:Visual Studio 2019

03. 關(guān)鍵技術(shù)

工具欄CToolBar提供了一個GetToolBarCtrl方法,用于獲得一個CToolBarCtrl對象,該對象提供了一個SetImageList方法用于設(shè)置工具欄關(guān)聯(lián)的圖像列表控件。只要在程序中創(chuàng)建一個圖像列表,并向圖像列表中添加圖標(biāo),將其與工具欄關(guān)聯(lián),那么工具欄按鈕就會顯示圖像。

04. 程序設(shè)計

4.1 新建基于單文檔視圖結(jié)構(gòu)的應(yīng)用程序。

4.2 添加圖標(biāo)資源,將圖標(biāo)資源拷貝到項目所在的res目錄中,然后找到資源視圖,添加圖標(biāo)資源。

4.2 在框架類中定義一個CImageList對象m_Imagelist。

private:CImageList m_ImageList;

4.3 在框架類的OnCreate方法中創(chuàng)建圖像列表,并向圖像列表中添加圖標(biāo)。創(chuàng)建工具欄,將工具欄與圖像列表關(guān)聯(lián)。設(shè)置工具欄按鈕的大小。

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) {if (CFrameWnd::OnCreate(lpCreateStruct) == -1)return -1;//創(chuàng)建圖像列表,向圖像列表中添加圖標(biāo)m_ImageList.Create(32, 32, ILC_COLOR24 | ILC_MASK, 0, 1);//添加一個或多個圖象到圖象列表中 for (int i = 0; i < 9; i++){m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON1 + i));}if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)){TRACE0("未能創(chuàng)建工具欄\n");return -1; // 未能創(chuàng)建}//設(shè)置工具欄圖像列表m_wndToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);//設(shè)置工具欄按鈕大小m_wndToolBar.GetToolBarCtrl().SetButtonSize(CSize(40, 40));//設(shè)置工具欄按鈕圖像大小m_wndToolBar.GetToolBarCtrl().SetBitmapSize(CSize(30, 30));if (!m_wndStatusBar.Create(this)){TRACE0("未能創(chuàng)建狀態(tài)欄\n");return -1; // 未能創(chuàng)建}m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));// TODO: 如果不需要可停靠工具欄,則刪除這三行//設(shè)置工具欄停靠位置m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);//設(shè)置框架內(nèi)對齊方式EnableDocking(CBRS_ALIGN_ANY);//將工具欄進行停靠DockControlBar(&m_wndToolBar);return 0; }

05. 秘笈心法

工具欄種類

工具欄分為帶圖標(biāo)的工具欄、帶文字的工具欄和即帶圖標(biāo)又帶文字的工具欄。帶圖標(biāo)的工具欄通過圖標(biāo)的演示作用很容易讓人記憶,所以使用起來非常方便,即帶圖標(biāo)又帶文字的工具欄比只帶圖標(biāo)的工具欄更加方便,單圖標(biāo)下方的文字的數(shù)量有限,只能是起到提示作用的文本,主要還是依靠圖標(biāo)的演示作用,而且需要結(jié)合提示條對工具欄按鈕進行提示。

06. 源碼下載

6.1 帶圖標(biāo)的工具欄示例

下載:帶圖標(biāo)的工具欄示例

07. 附錄

總結(jié)

以上是生活随笔為你收集整理的【MFC】带图标的工具栏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。