Google Chrome - , а не , использующий Vista SDK для достижения этой цели в XP. Если вы посмотрите на src\chrome\browser\views\frame
, есть несколько файлов для определения фрейма браузера в зависимости от возможностей системы. На XP это выглядит как OpaqueFrame
; строка 19 имеет это сказать:
// OpaqueFrame
//
// OpaqueFrame is a CustomFrameWindow subclass that in conjunction with
// OpaqueNonClientView provides the window frame on Windows XP and on Windows
// Vista when DWM desktop compositing is disabled. The window title and
// borders are provided with bitmaps.
Похоже, что он использует ресурсы в src\chrome\app\theme
для рисования кнопок рамки.
Так что, похоже, мои надежды на то, что есть какой-то дешевый способ включить тематику Vista на XP, разбиты. Единственный способ сделать это - вручную нарисовать не-клиентскую область вашего окна. Я полагаю, что что-то вроде этого , вероятно, является правильным путем, поскольку он позволяет Windows обрабатывать не связанные с клиентом вещи, такие как перемещение и изменение размера окна.
Если кто-то не может найти метод волшебного включения темы Vista на XP, это ответ на вопрос, но я, очевидно, не могу пометить свой пост как ответ.