2012-03-29 53 views
0

使用Visual Studio 2010在MFC項目的MDI和SDI應用程序中添加了可停靠的窗口。好極了!但是,我在調整CFormView以適應CFrame中的可用區域時遇到問題。調整CViewForm的大小以適合SDI中的CFrame的可用窗口

我有一個SDI應用程序,它動態地創建用戶選擇的視圖類型並將其設置到CFrame對象中。

我意識到我可以使用MDI來代替,但是由於具有多個文檔的複雜性較高,所以要遠離這一點。

創建新的視圖,並顯示它工作得很好,但如果我:

CView* pOldActiveView = GetActiveView(); 
CView* pNewActiveView = (CView*)new CMyView; 
CRect r; 
pOldActiveView->GetWindowRect(&r); 
pNewActiveView->Create(NULL, NULL, 0, w, this, nForm, &context); 
pNewActiveView->OnInitialUpdate(); 

:然後每次我打開一個新的視圖窗口向上移動8個像素。我試着調整CRect,並努力解決這個問題。

但是,當我隱藏/停靠輸出和類窗口,甚至是基於SDI功能區的應用程序中的狀態欄時,CFormView不會自動調整大小,並且我找不到找到應該顯示的CRect的方法調整它的大小。 如何從CFormView中的CFrame中獲取CRect?

回答