MFC工具栏位置问题
要编写一个图片浏览程序,在做界面的时候想把工具栏放在下面居中的位置,像这样:我试过将m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);...
要编写一个图片浏览程序,在做界面的时候想把工具栏放在下面居中的位置,像这样:
我试过将
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
这两项设置为CBRS_ALIGN_BOTTOM,但调试时会出现
这样的问题。
请问还有什么可用的方法么?
我现在的界面: 展开
我试过将
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
这两项设置为CBRS_ALIGN_BOTTOM,但调试时会出现
这样的问题。
请问还有什么可用的方法么?
我现在的界面: 展开
展开全部
把创建工具栏的样式CBRS_TOP改成CBRS_BOTTOM就行
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE
| CBRS_TOP//把这个CBRS_TOP改成CBRS_BOTTOM就行
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))或者用CFrameWnd::DockControlBar
DockControlBar(&m_wndToolBar,AFX_IDW_DOCKBAR_BOTTOM);
void DockControlBar(
CControlBar* pBar,
UINT nDockBarID = 0,
LPCRECT lpRect = NULL
);至于EnableDocking是 "将要" 停靠在哪,或者说允许停靠在哪
如果要使工具条浮动,调用CFrameWnd::FloatControlBar
void FloatControlBar(
CControlBar * pBar,
CPoint point,
DWORD dwStyle = CBRS_ALIGN_TOP
);
更多追问追答
追问
第一个方法就成功了啊,太感谢了!还有我想问一下,有没有什么方法可以使那些按钮在工具栏的中间呢?
追答
DockControlBar的第3个参数不是一个CRect指针么,你用它试试
或者用MoveWindow也行
______
DockControlBar不知道坐标它怎么算的
用MoveWindow吧
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CMDIFrameWnd::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码
CRect rt1,rt2;
m_wndToolBar.GetWindowRect(&rt1);
m_wndToolBar.ScreenToClient(&rt1);
GetClientRect(&rt2);
m_wndToolBar.MoveWindow((rt2.Width()-rt1.Width())/2,rt1.top,rt1.Width(),rt1.Height());
}
天正软件
2024-08-02 广告
2024-08-02 广告
天正软件可以解决以下问题:1. 提供设计标准化:天正软件专注于勘察设计领域,为用户提供标准化、信息化、智能化的解决方案,以提高设计效率、优化设计流程、降低成本。2. 提高绘图效率:天正软件提供了一系列专业绘图工具,能够帮助设计师快速绘制图纸...
点击进入详情页
本回答由天正软件提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询