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