我希望在单文档中,让第二个toolbar停靠在最右边但却无法实现,最终找到原因。
总结下:
1:
因为程序的流程是先在MaiFrame中调用OnCreate函数,在函数中调用toolbar位置变化函数,然后在InitInstance中调用窗口最
大化函数,于是程序运行后,toolbar2总是停留在窗口最大化之前的位置。所以需要在OnSize中修改toolbar的位置。
代码:
if( m_wndToolBar2.m_hWnd != NULL )//工具栏停靠时,由于先停靠,窗口再变大,使停靠位置没有靠右边,所以重新
设置位置
{
CRect rect;
DWORD dw;
UINT n;
RecalcLayout();
m_wndToolBar.GetWindowRect(&rect);
rect.OffsetRect(18000,0);//最右边
DockControlBar(&m_wndToolBar2, (UINT)0, &rect);
RecalcLayout();
}
2:
如果希望让这两个toolbar左右停靠后又不能移动,可以对CToolBar进行扩展,代码在我的资源中有,搜索名“CToolBar单行两个停靠位置变化总结”