Re: Кнопки в заголовок окна для Windows Vista/7(Aero)
От: Sergei I. Gorelkin Россия  
Дата: 22.03.10 21:01
Оценка: 4 (2) :)
Здравствуйте, lucifer_vrn, Вы писали:

_>Здравствуйте!

_>Подскажите пожалуйста, как поместить кнопку или хотя бы просто нарисовать нечто в заголовке окна рядом с кнопками "закрыть", "свернуть", "развернуть"?
_>Тут множество топиков про это, равно как и в гугле, но тут есть одна проблема — они не работают по Windows Vista/ Windows Seven, т.е. под Aero(если его отключить то все работает). А меня интересует именно под висту, если под более раними осями работать не будет — не страшно.

Aero не позволяет рисовать в неклиенской области окна (при попытке это сделать Aero отключается), зато рамку можно расширить в клиентскую область.
Поэтому:
1) путем обработки WM_NCCALCSIZE системе внушается, что клиентская область окна занимает все окно.
2) с помощью DwmExtendFrameIntoClientArea() восстанавливаем визуально исходный размер рамки.
3) теперь остается сущая мелочь — самостоятельно реализовать всю функциональность неклиенской области, которая ушла лесом из-за п.1.
4) и сущая мелочь номер два — доработать напильником рисование клиентской области, чтобы на месте рамки рисовалось только то, что нужно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.