Изменение размера CViewForm для соответствия доступному окну CFrame в SDI - PullRequest
0 голосов
/ 29 марта 2012

В Visual Studio 2010 появилось добавление стыкуемых окон в приложениях MDI и SDI для проектов MFC.Ура!Однако у меня возникла проблема с изменением размера CFormView для соответствия доступной области в 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, к которому я должен изменить его размер. Как я могу получить CRect от CFrame, в котором находится CFormView?

1 Ответ

0 голосов
/ 06 апреля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...