一、創建工具欄
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
