VC++之对话框中添加工具栏

时间:2021-11-14 08:58:33
 

1、添加工具栏资源ID为IDR_TOOLBAR
2、在对话框的类定义中加:
 CToolBar m_ToolBar;
3、在OnInitDialog中或其它合适的消息响应中加如下代码:(函数可查看MSDN)
 
 m_ToolBar.Create(this); //创建工具栏
 m_ToolBar.LoadToolBar(IDR_TOOLBAR);//加载工具栏
 
 //得出控件条大小.
 CRect rect;
 CRect rectNow;
 GetClientRect(rect);
 RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0,reposQuery,rectNow);

 //放置控件条位置
 CPoint ptOffset(rectNow.left-rect.left,rectNow.top-rect.top);

 CRect  rcChild;
 CWnd* pwndChild=GetWindow(GW_CHILD);
 while (pwndChild)
 {                              
  pwndChild->GetWindowRect(rcChild);
  ScreenToClient(rcChild);
  rcChild.OffsetRect(ptOffset);
  pwndChild->MoveWindow(rcChild,FALSE);
  pwndChild=pwndChild->GetNextWindow();
 }

 //调整对话框尺寸
 CRect rcWindow;
 GetWindowRect(rcWindow);
 rcWindow.right+=rect.Width()-rectNow.Width();
 rcWindow.bottom+=rect.Height()-rectNow.Height();
 MoveWindow(rcWindow, FALSE);
 
 //控件条定位
 RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
  
 //对框居中
 CenterWindow();

4、手工添加处理函数
 afx_msg void OnBtnXXX();//消息响应函数声明
 ON_COMMAND(ID_BTN_XXX/*工具按钮ID*/,OnBtnXXX/*函数名*/)//消息映射
         void CXXXDlg::OnBtnXXX(){}//消息处理函数