Изменить тему кнопок мин / макс / закрыть - PullRequest
3 голосов
/ 05 октября 2008

я в настоящее время перебрасываю WM_NCPAINT, WM_NCCALCSIZE и WM_NCACTIVATE, чтобы нарисовать собственную цветную / тематическую строку заголовка для приложения, над которым я работаю. Теперь это работает отлично, однако кнопки min, max и close по-прежнему являются темой xp по умолчанию.

Я посмотрел, что их контролирует, и сообщения мыши. Однако они также контролируют изменение размера и другие функции, которые я не хочу терять.

Есть ли простой способ изменить тему этих кнопок?

  • Windows XP
  • MFC Forms
  • Визуальная студия 2005

Ответы [ 3 ]

2 голосов
/ 05 октября 2008

Я думаю, что вам лучше всего отключить кнопки и перерисовать их чем-то вроде кода, который я разместил в этом ответе . Он находится в C # с WinForms, но подавляющее большинство его в любом случае перегружено WndProc (), который вы можете использовать почти для копирования / вставки в MFC.

Реализация обработчиков кликов для выполнения того, что вы от них хотите, тривиальна.

Примечание: тот, кто задал этот вопрос, сказал, что код не работает в Vista. У меня нет Vista, но у меня она работает в XP.

0 голосов
/ 07 октября 2008

Вы также можете проверить, как это делается в MFC Next (VS2008 SP1). Тематическая поддержка делает пользовательское рисование всей строки заголовка, вы можете получить несколько идей из этого. Я полагаю, что они тоже проверили это на Vista;)

0 голосов
/ 05 октября 2008

Это также помогло: http://www.catch22.net/tuts/titlebar

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