工控编程吧
标题: 上位机MFC如何在对话框中加载工具栏 [打印本页]
作者: qq263946146 时间: 2019-7-21 13:46
标题: 上位机MFC如何在对话框中加载工具栏
同样默认的对话框工程是不带工具栏的。我们得自己添加。
在工程播放工具栏ID,IDR_TOOLBAR
添加工具栏变量,并初始化
CToolBar m_wndToolBar;
- //创建工具栏
- if (!m_wndToolBar.Create(this))
- {
- return FALSE;
- }
- //加载工具栏资源
- if (!m_wndToolBar.LoadToolBar(IDR_TOOLBAR))
- {
- return FALSE;
- }
-
- //获得旧客户区坐标
- CRect rcOldClient;
- GetClientRect(rcOldClient);
- //获得新客户区坐标
- CRect rcNewClient;
- RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST,
- 0, reposQuery, rcNewClient);
-
- //移动主窗口
- CRect rcMain;
- GetWindowRect(rcMain);
- rcMain.right += rcOldClient.Width() - rcNewClient.Width();
- rcMain.bottom += rcOldClient.Height() - rcNewClient.Height();
- MoveWindow(rcMain, FALSE);
- //移动所有子窗口
- CRect rcChild;
- CPoint point(rcNewClient.left - rcOldClient.left, rcNewClient.top - rcOldClient.top);
- CWnd* pChildWnd = GetWindow(GW_CHILD);
- while (pChildWnd != NULL)
- {
- pChildWnd->GetWindowRect(rcChild);
- ScreenToClient(rcChild);
- rcChild.OffsetRect(point);
- pChildWnd->MoveWindow(rcChild, FALSE);
- pChildWnd = pChildWnd->GetNextWindow();
- }
- //重新定位工具栏
- RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
复制代码 运行就可以查看效果了,
这里也将例程工程提供参考
(, 下载次数: 0)