MFC 工具欄ToolBar


一、創建工具欄

1、在MFC工程,找到“資源視圖”界面,右鍵添加資源,選擇Toolbar,點擊新建:

 

 

 

2、修改工具條屬性:

 

 

 

3、添加工具:

  新建ToolBar后,會自動生成一個工具,編輯ID后,工具條后面會自動新增一個空白的工具。

 

4、刪除工具:

  按Delete鍵或者右鍵工具刪除,都是刪除工具里面的圖標內容,無法真正刪除工具。選中工具條中需要刪除的工具,長按拖出工具條即可刪除該項工具。

 

5、為工具添加圖標:

  逐個添加工具條里面的各個工具,可以在網上下載、截圖。然后在此界面右鍵粘貼即可。

  導入圖標后,可以通過打開外部編輯器在畫圖工具下編輯圖標。導入的每個圖標記得要修改ID屬性。

  注意:為工具添加圖標后,一般情況無法去除工具背景色,需要利用特殊工具進行處理,后續會提到。

 

6、創建工具條,將創建工具條的代碼添加到對應的初始化函數中即可:

BOOL CDormDlg::InitToolBar()
{
    initializeFlag  = TRUE;

    //創建ToolBar工具條
    if(!m_toolbar.CreateEx(this,TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
                           | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || 
      !m_toolbar.LoadToolBar(IDR_TOOLBAR1))
    {
        TRACE0("Failed to Create Dialog ToolBar\n");
        EndDialog(IDCANCEL);
    }
    CRect rcClientOld;
    CRect rcClientNew;

    GetClientRect(rcClientOld);
    RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0,reposQuery,rcClientNew);


    //創建位圖  CImageList
    HICON hIcon = NULL ;
    img.Create(32,32,ILC_COLOR32 | ILC_MASK,3,3);//加載圖片大小,圖片格式,圖片數量
    COLORREF co = GetSysColor(COLOR_WINDOW);
    
    img.SetBkColor(co);
    
    hIcon =(HICON) ::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_STU_ADD),IMAGE_ICON,32,32,0);//導入添加學生圖片0
    img.Add(hIcon);

    hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_STU_DEL),IMAGE_ICON,32,32,0);//導入刪除學生圖片1
    img.Add(hIcon);

    hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_STU_CHECK),IMAGE_ICON,32,32,0);//導入查詢學生圖片2
    img.Add(hIcon);


    //添加按鈕信息
    m_toolbar.GetToolBarCtrl().SetImageList(&img);
    m_toolbar.SetButtons(NULL,6);

    m_toolbar.SetButtonInfo(0,IDC_TOOLBAR_ADDSTD,TBSTYLE_BUTTON,0);
    m_toolbar.SetButtonText(0,_T("添加學生"));

    m_toolbar.SetButtonInfo(1,-1,TBSTYLE_SEP,-1);
    m_toolbar.SetButtonText(1,_T(""));

    m_toolbar.SetButtonInfo(2,IDC_TOOLBAR_DELSTD,TBSTYLE_BUTTON,1);
    m_toolbar.SetButtonText(2,_T("刪除學生"));

    m_toolbar.SetButtonInfo(3,-1,TBSTYLE_SEP,-1);
    m_toolbar.SetButtonText(3,_T(""));

    m_toolbar.SetButtonInfo(4,IDC_TOOLBAR_CHECKSTD,TBSTYLE_BUTTON,2);
    m_toolbar.SetButtonText(4,_T("查詢學生"));

    m_toolbar.SetButtonInfo(5,-1,TBSTYLE_SEP,-1);
    m_toolbar.SetButtonText(5,_T(""));

    
    //設置工具欄按鈕大小
    CRect rectToolBar;
    m_toolbar.GetItemRect(0,&rectToolBar);
    m_toolbar.SetSizes(rectToolBar.Size(),CSize(40,30));
    m_toolbar.SetSizes(CSize(80,50),CSize(40,30));    

    m_toolbar.EnableToolTips(TRUE);
//    m_toolbar.ShowWindow(SW_SHOW);
    return TRUE;
}

  

7、添加工具按鈕響應消息:

BEGIN_MESSAGE_MAP(CFMSTechApp, CWinApp)
	ON_COMMAND(ID_DATA_MGR_EXAM, &CFMSTechApp::OnDataMgrExam)//響應命令
	ON_UPDATE_COMMAND_UI(ID_DATA_MGR_EXAM, &CFMSTechApp::OnUpdateDataMgrExam)//UI狀態控制
END_MESSAGE_MAP()

  

二、處理工具欄圖標背景透明

1、使用輔助工具BCGToolbarEditor.exe

2、打開工具BCGToolbarEditor.exe,選擇打開需要添加工具欄的項目,*.vcxproj

 

 

3、選擇需要編輯的圖標,導入資源圖片

 

 

4、加載圖標資源

 

 

5、編輯完成后,保存工具欄。重新加載MFC項目,工具欄背景即被去除掉。

6、下載鏈接:https://files.cnblogs.com/files/ly940120/Designer.rar

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM