Я портирую более старое приложение MFC для использования пакета функций MFC с пользовательским интерфейсом ленты и обнаружил, что пользовательский интерфейс ленты не обрабатывает команды мозаики окон MDI, такие как ID_WINDOW_TILE_VERT. Есть ли способ включить эту функцию?
За один шаг через источник MFC я добираюсь до следующего в C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ atlmfc \ src \ mfc \ winmdi.cpp, что кажется правильным ;
BOOL CMDIFrameWnd::OnMDIWindowCmd(UINT nID)
{
ASSERT(m_hWndMDIClient != NULL);
UINT msg;
UINT wParam = 0;
switch (nID)
{
default:
return FALSE; // not for us
case ID_WINDOW_ARRANGE:
msg = WM_MDIICONARRANGE;
break;
case ID_WINDOW_CASCADE:
msg = WM_MDICASCADE;
break;
case ID_WINDOW_TILE_HORZ:
wParam = MDITILE_HORIZONTAL;
// fall through
case ID_WINDOW_TILE_VERT:
ASSERT(MDITILE_VERTICAL == 0);
msg = WM_MDITILE;
break;
}
::SendMessage(m_hWndMDIClient, msg, wParam, 0);
return TRUE;
}
Я также пробовал позвонить
MDITile(MDITILE_HORIZONTAL);
напрямую, что, по сути, делает то же самое и не работает.