日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【MFC】带组合框的工具栏

發布時間:2024/4/24 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【MFC】带组合框的工具栏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

00. 目錄

文章目錄

    • 00. 目錄
    • 01. 案例概述
    • 02. 開發環境
    • 03. 關鍵技術
    • 04. 程序設計
    • 05. 秘笈心法
    • 06. 源碼下載
    • 07. 附錄

01. 案例概述

在Office軟件中經常可以看到工具上有很多組合框,通過工具欄上的組合框Office可以非常方便的設置字體的大小、類型等。實例就實現帶組合框的工具欄。效果如下圖所示。

02. 開發環境

系統環境:Windows 10

開發環境:Visual Studio 2019

03. 關鍵技術

實例使用CToolBar類創建工具欄,首先通過Create方法創建工具欄后,然后使用LoadBitmap設置按鈕使用的圖標,使用SetButtons設置按鈕使用的ID資源,接著使用GetItemRect獲取指定按鈕的區域,然后使用CComboBox類的Create方法在該區域內創建組合框控件。如果想改變原有按鈕的區域需要使用CToolBar類SetButtonInfo方法,該方法不但可以設置工具欄按鈕使用的圖標索引、按鈕的樣式,還可以改變按鈕的寬度。

SetButtonInfo方法

該方法用來設置工具欄按鈕的屬性信息。語法:

void SetButtonInfo( int nIndex, UINT nID, UINT nStyle, int iImage ); nIndex 按鈕的索引 nID 按鈕的資源ID值 nStyle 按鈕的樣式,有以下取值。 TBBS_BUTTON:按鈕樣式。 TBBS_SEPARATOR:分隔條樣式。 TBBS_CHECKBOX:復選樣式 TBBS_GROUP:組樣式。 TBBS_CHECKGROUP:復選組樣式,該樣式應放在按鈕組的第一位置。 iImage 設置圖片索引,以及按鈕的寬度

04. 程序設計

(1)新建一個基于單文檔視圖結構的應用程序。

(2)從CToolBar派生新類CStyleBar,并在CMainFrame類中聲明該類的一個對象m_wndStyleBar。

(3)在CMainFrame類的OnCreate函數中創建工具欄,函數實現代碼如下。

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) {if (CFrameWnd::OnCreate(lpCreateStruct) == -1)return -1;const int nDropHeight = 100;//創建工具欄if (!m_wndStyleBar.Create(this, WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_TOOLTIPS|CBRS_FLYBY, 15000) ||!m_wndStyleBar.LoadBitmap(IDB_STYLES) || //加載工具欄圖標!m_wndStyleBar.SetButtons(styles, sizeof(styles)/sizeof(UINT))) //為工具欄添加按鈕{TRACE0("Failed to create stylebar\n");return FALSE;}m_wndStyleBar.SetButtonInfo(0, 12000, TBBS_SEPARATOR, 50); //設置指定工具欄按鈕的寬度m_wndStyleBar.SetButtonInfo(1, ID_SEPARATOR, TBBS_SEPARATOR, 12); //設置指定工具欄按鈕的樣式CRect rect;m_wndStyleBar.GetItemRect(0, &rect); //獲取指定按鈕的區域rect.top = 3;rect.bottom = rect.top + nDropHeight;if (!m_wndStyleBar.m_comboBox.Create(CBS_DROPDOWNLIST|WS_VISIBLE|WS_TABSTOP,rect, &m_wndStyleBar, 12000)) //創建組合框{TRACE0("Failed to create combo-box\n");return FALSE;}return 0; }

05. 秘笈心法

增強工具欄的創建

在工具欄上不僅可以顯示組合框控件,還可以顯示編輯框和標簽控件,其實現的思路都是一樣的,就是先生成工具欄按鈕,然后獲取按鈕的區域,最后在該區域內創建想要創建的控件。

06. 源碼下載

下載:

07. 附錄

參考: 《Visual C++從入門到精通(項目案例版)》

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。