我正在处理一个转移给我的 MFC 项目。它的基本布局(源自 的主框架CFrameWnd
)显示在此草图中:
和CommandBar
都ControlBar
源自CDialogBar
,是使用WS_CHILD | CBRS_ALIGN_RIGHT
as 样式创建的。
这对对齐很好。但是我想定义这两个元素的宽度并且找不到设置它的方法。
当我尝试EnableDocking
使用对话框栏时,我无法解决断言。另外我不确定这是否是我正在寻找的。
覆盖CalcDynamicLayout并返回计算的大小是我想要的。
例子:
CSize CommandBar::CalcDynamicLayout(int nLength, DWORD dwMode)
{
CSize size;
CRect parentRect;
if (GetParent())
GetParent()->GetClientRect(&parentRect);
size.cy = parentRect.Height();
size.cx = (int)(abs(parentRect.Width() - parentRect.Height() + GetSystemMetrics(SM_CYMENUSIZE)) * 0.5);
return size;
}