1、添加变量:CToolBar m_wndToolBar;
2、生成工具条
BOOL CfDemoDlg::OnInitDialog() { if (!m_wndToolBar.CreateEx( this,TBSTYLE_LIST , WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS ,CRect(4,4,0,0)) || !m_wndToolBar.LoadToolBar(IDR_TOOLBAR2) ) { return FALSE; } m_wndToolBar.ShowWindow(SW_SHOW); RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0); m_ImageList.Create(32,32,ILC_COLOR32|ILC_MASK,1,1); for(int i=0;i<9;i++) { m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1+i)); } m_wndToolBar.SetButtonText(0,_T("添加")); m_wndToolBar.SetButtonText(1,_T("批量")); m_wndToolBar.SetButtonText(2,_T("删除")); m_wndToolBar.SetButtonText(3,_T("清空")); m_wndToolBar.SetButtonText(4,_T("上移")); m_wndToolBar.SetButtonText(5,_T("下移")); m_wndToolBar.SetButtonText(6,_T("开始")); m_wndToolBar.SetButtonText(7,_T("主页")); m_wndToolBar.GetToolBarCtrl().SetImageList(&m_ImageList); m_wndToolBar.GetToolBarCtrl().SetButtonWidth(30,50); m_wndToolBar.SetSizes(CSize(70,35),CSize(32,28));//设置大小; }
3、消息响应
在vs2005中,似乎不能像vc6那样响应自定义工具条的消息,所以自己响应了一下:
void OnBnClickedToolBar1(UINT nID);//添加函数 ON_COMMAND_RANGE(ID_ADD_FILE, ID_HOME, OnBnClickedToolBar)//添加工具条消息映射 void CImageToPdfDemoDlg::OnBnClickedToolBar1(UINT nID)//函数实现 { int nIndex = nID - ID_ADD_FILE; switch(nIndex) { case 0: OnAddFile(); break; case 1: OnAddFolder(); break; case 2: OnListDelete(); break; case 3: OnListClear(); break; case 4: OnUp(); break; case 5: OnDown(); break; case 6: OnConvert(); break; case 7: OnHome(); break; default:; } }