2008-10-05 4 views
3

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

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

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

  • Windows XP
  • MFC Forms
  • Visual Studio 2005
+0

Программы, которые высокомерно переоценивают мой выбранный внешний вид GUI, являются одним из моих домашних животных в жизни. Только не делай этого. Оставьте кнопки пользователя max, min и close, похожие на то, что пользователь выбрал их для просмотра! – 2008-10-05 08:36:16

+0

Что делать, если это часть приложения, которое имеет настраиваемые скины? Кто сказал что-нибудь о том, что пользователь ничего не сказал? – 2008-10-05 09:03:14

ответ

2

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

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

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

0

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