2012-03-29 2 views
0

С Visual Studio 2010 появилось подключение подключаемых окон в приложениях MDI и SDI для проектов MFC. Ура! Тем не менее, у меня возникла проблема с выбором размера CFormView для размещения доступной области в CFrame.Изменение размера CViewForm для размещения доступного окна CFrame в SDI

У меня есть приложение 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 и это исправить.

Однако, когда я скрываю/закрепляю окна Output и Class или даже строку состояния в приложении на основе SDI-ленты, CFormView не изменяет размер автоматически, и я не могу найти способ найти CRect, который должен измените его размер. Как я могу получить CRect из CFrame, в котором сидит CFormView?

ответ

0

Nevermind. После ответов я решил пойти другим путем. Вместо динамического переключения представления в мейнфрейме я нашел эту ссылку и добавил представления к документу и без проблем переключил их (без изменений в mfc) http://msdn.microsoft.com/en-us/library/s199bks0(v=vs.80).aspx

Смежные вопросы