MFC рисует новое в развернутом окне

У меня есть приложение MFC MDI. Если я изменю размеры своего окна, я получу окно с новым масштабом.

BEGIN_MESSAGE_MAP(CmyView, CFormView)
ON_WM_SIZE()
END_MESSAGE_MAP()

void CmyView::OnSize(UINT nType, int cx, int cy)
{
RECT rc;
GetClientRect(&rc);

if (::IsWindow(m_XYZ.GetSafeHwnd()))
{
m_XYZ.MoveWindow (rc.left, rc.top,rc.right,rc.bottom);
}
}

Все работает нормально, но если я нажму кнопку «Развернуть», размер экрана не изменится. Я получу белую рамку справа и снизу.
Есть ли какие-либо изменения, чтобы получить событие максимизации, например, событие resize (ON_WM_SIZE ())?

Спасибо 🙂

0

Решение

спасибо за ваши ответы! Я нашел проблему.

Как я уже сказал, у меня есть приложение MDI. Я использовал событие ON_SIZE в моем первом и втором просмотре. Событие максимизации или минимизации вызывается только в MainFrame.

Но проблема все еще жива.

void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
RECT rc;
GetClientRect(&rc);

CWnd* ViewWin = GetWindow(0); // this is my first view

if (::IsWindow(ViewWin->GetSafeHwnd()))
{
if (nType == SIZE_MAXIMIZED)
ViewWin->ShowWindow(SW_MAXIMIZE);
else if (nType == SIZE_MINIMIZED)
ViewWin->ShowWindow(SW_MINIMIZE);
else
ViewWin->MoveWindow (rc.left, rc.top,rc.right,rc.bottom);
}

CWnd* ViewWin1 = GetWindow(1);   // this is my second view
if (::IsWindow(ViewWin1->GetSafeHwnd()))
{
if (nType == SIZE_MAXIMIZED)
ViewWin1->ShowWindow(SW_MAXIMIZE);
else if (nType == SIZE_MINIMIZED)
ViewWin1->ShowWindow(SW_MINIMIZE);
else
ViewWin1->MoveWindow (rc.left, rc.top,rc.right,rc.bottom);
}
}

Я займусь делом максимизации или минимизации, но ничего не произойдет.

0

Другие решения


По вопросам рекламы [email protected]