我正在研究转移给我的MFC项目。
它的基本布局(源自CFrameWnd
的主框架)显示在此草图中:
来自CommandBar
的{{1}}和ControlBar
是使用CDialogBar
作为样式创建的。
这对齐对齐。但我想定义这两个元素的宽度,但无法找到设置它的方法。
当我尝试WS_CHILD | CBRS_ALIGN_RIGHT
对话框时,我无法解决断言。此外,我不确定这是否是我要找的。 p>
答案 0 :(得分:2)
覆盖CalcDynamicLayout并返回计算出的大小就是我要找的。 p>
示例:
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;
}