Неклиентская роспись на стеклопакете

Теперь я настраиваю заголовок моего приложения. Моя цель - добавить еще одну кнопку в строке заголовка. Im мой предыдущий вопрос, люди советовали мне, как я могу настроить не клиентскую область. Это прекрасно работает, за исключением одной маленькой вещи - светящиеся! Я могу рисовать светящиеся в неклиентской области, но не могу сделать так, чтобы это распространялось из окна. Я также не могу найти какой-либо ресурс об этом Subj.

Я изучил этот пример и создал свое собственное тестовое приложение для исследования средств рисования, не относящихся к клиенту. Снимок экрана из окна моего приложения:

окно моего приложения

Таким образом, вы можете видеть, что системная кнопка светится из окон, когда my обрезается по рамке.

Например, в окне Skype есть четыре пользовательских кнопки в строке заголовка, и они могут "светиться" за рамкой окна:

Окно скайпа

Кто-нибудь может посоветовать мне узнать, как нарисовать светящиеся кнопки из окна?
Заранее спасибо!

[РЕДАКТИРОВАТЬ]
Спасибо всем за ответы!

3 ответа

Решение

Скайп обманывает это, и имеет небольшую полоску вдоль вершины их окна; где они могут нарисовать это.

Вы можете увидеть это с Process Explorer для SpyXX:

Смотрите также

MSDN: настраиваемая оконная рама с использованием DWM

Я не думаю, что можно рисовать за пределами вашей области ЧПУ, и я сомневаюсь, что они рисуют весь пользовательский интерфейс, чтобы точно соответствовать эффектам DWM Aero.

Учитывая то, как это выглядит, мне интересно, сделали ли они какие-то трюки с помощью кнопки помощи или восстановления CustomBorderForm, которая затем получала бы эффект подсветки размытия DWM "бесплатно".

Вот самая релевантная статья, которую я мог найти к этому: http://geekswithblogs.net/kobush/articles/CustomBorderForms3.aspx

Продолжение - я думаю, что эта пользовательская тема Chrome имеет больше указателей на одни и те же методы (хотя и с другой целью): пользовательские заголовки / хром в приложении WinForms

AFAIK, это невозможно, потому что область за пределами вашего окна просто не принадлежит вам.

Снимок экрана Skype сделан из специально отрисованной рамки, которая, скорее всего, немного выходит за пределы видимых границ, а не из рамки Aero Glass. Вы можете заметить разницу, если вы посмотрите внимательно.

Другие вопросы по тегам