Расширение того, как Win 7 (Aero) рисует свои стандартные окна и элементы управления - PullRequest
0 голосов
/ 30 марта 2011

Я хочу расширить / переопределить, как Windows 7 draw использует свои стандартные Windows и элементы управления. Сейчас я провожу предварительные исследования о том, как изменить стандартный пользовательский интерфейс, чтобы сделать его немного более удобным для сенсорного управления в проекте, над которым я работаю.

В частности, я хотел бы изменить, как W7 рисует границы вокруг своих окон, и как изменить Кнопки управления окном (закрыть, свернуть, выйти и т. Д.). Предполагается, что это глобальное изменение, и оно повлияет на то, как прорисовываются все окна в системе. Честно говоря, я ищу функциональность, которая очень похожа на то, что делает WindowBlinds, по крайней мере, для этой части проекта ...

Что касается достижения цели, я полагаю, что лучшим способом было бы создать службу, которая наблюдает за каждым процессом, или внедрить библиотеку DLL в каждый процесс, которая будет отслеживать свою очередь сообщений для всех сообщений, связанных с рисованием. окно. Затем он переопределит это событие, нарисовав окно (или элемент управления) так, как я хочу, чтобы оно было нарисовано.

К сожалению, я немного поверхностен в том, как на самом деле это сделать ... У кого-нибудь есть какие-либо предложения о том, как лучше всего к этому подойти? Любые примеры на любом языке (я, вероятно, буду использовать C # или C ++) приветствуются!

Ответы [ 2 ]

2 голосов
/ 02 мая 2011

Не поддерживается Windows API для замены оконных визуальных элементов в масштабе всей системы. Это требует использования недокументированных API и хакерских решений. В свою очередь, подобные взломы могут сделать системы ваших пользователей более нестабильными. Я настоятельно рекомендую против этого.

Если вы хотите настроить визуальные элементы для своего собственного приложения, вы можете использовать :: DwmExtendFrameIntoClientArea, чтобы позволить вам нарисовать свой собственный регион заголовка (как, например, в Office). Смотри http://msdn.microsoft.com/en-us/library/bb688195(VS.85).aspx

Martyn

0 голосов
/ 30 марта 2011

Вы должны использовать существующую систему тем, такую ​​как эта .

Вы также можете использовать UXTheme.dll , с этим редактором .

...