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());
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询