Проблема с лентой основной темы Vista
-
20-09-2019 - |
Вопрос
В Vista, когда используется Базовая тема, после вызова IUIFramework::Destroy() тема Vista теряется, и при увеличении окно не отображается за пределами начальной области.
Вы можете легко воспроизвести его с помощью образца SimpleRibbon SDK.В simpleribbon.cpp вставьте в блок переключения WndProc:
case WM_KEYUP:
DestroyFramework();
InvalidateRect(hWnd, NULL, TRUE);
break;
Скомпилируйте, запустите, нажмите клавишу и попробуйте увеличить в теме Vista Basic (без проблем в Win7, Vista aero или Windows classic).
Как обойти это?
[править]
Я был бы доволен некоторыми треками для расследования, я не ожидаю готового решения :-)
Решение
Элемент управления ribbon, похоже, устанавливает область окна и забывает удалить ее при уничтожении ленты.
Установка нулевой области окна при возврате IUIFramework::Destroy()
кажется , это решает проблему .