1

我正在处理一个转移给我的 MFC 项目。它的基本布局(源自 的主框架CFrameWnd)显示在此草图中: 主机布局

CommandBarControlBar源自CDialogBar,是使用WS_CHILD | CBRS_ALIGN_RIGHTas 样式创建的。
这对对齐很好。但是我想定义这两个元素的宽度并且找不到设置它的方法。

当我尝试EnableDocking使用对话框栏时,我无法解决断言。另外我不确定这是否是我正在寻找的。

4

1 回答 1

2

覆盖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;
}
于 2013-03-19T13:28:58.420 回答