2013-02-14 96 views
1

我正在處理傳送給我的MFC項目。 它的基本佈局(從CFrameWnd衍生主幀)在該草圖所示: MainFrame layout將框架中的對話框對齊並設置其寬度

CommandBarControlBar,從CDialogBar兩者衍生,使用WS_CHILD | CBRS_ALIGN_RIGHT作爲風格創建的。
這對於對齊很好。但我想定義了這兩個元素的寬度,並且找不到設置它的方法。

當我試圖EnableDocking對話框,我無法設法解決斷言。此外,我不確定這是我所尋找的。

回答

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; 
}