Что нового

Изменение тем оформления окон

inx

Знающий
Сообщения
43
Репутация
12
Можно ли менять для каждого окна цвета заголовка персонально?
Что-то вроде:
Код:
#include <WinAPI.au3>

Global Const $COLOR_ACTIVECAPTION = 2
Global Const $COLOR_GRADIENTACTIVECAPTION = 27

Local $aElements[3] = [$COLOR_ACTIVECAPTION, $COLOR_GRADIENTACTIVECAPTION]
Local $aColors[3] = [65535, 65535]

$hGui = GUICreate("Yellow", 500, 400)
GUISetState()
Sleep(1000)
Local $iWindow = WinGetHandle("Yellow")
DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", $iWindow, "wstr", 0, "wstr", 0)
_WinAPI_SetSysColors($aElements, $aColors)

Sleep(1000)

Local $aElements[3] = [$COLOR_ACTIVECAPTION, $COLOR_GRADIENTACTIVECAPTION]
Local $aColors[3] = [255, 255]

$hGui2 = GUICreate("Red", 300, 200)
GUISetState()
Sleep(1000)
Local $iWindow = WinGetHandle("Red")
DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", $iWindow, "wstr", 0, "wstr", 0)
_WinAPI_SetSysColors($aElements, $aColors)

Sleep(1000)
;~ emerald green
Local $aElements[3] = [$COLOR_ACTIVECAPTION, $COLOR_GRADIENTACTIVECAPTION]
Local $aColors[3] = [5753088, 5753088]

Local $iWindow = WinGetHandle("Калькулятор")
DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", $iWindow, "wstr", 0, "wstr", 0)
_WinAPI_SetSysColors($aElements, $aColors)

Sleep(1000)
;~ Blue
Local $aElements[3] = [$COLOR_ACTIVECAPTION, $COLOR_GRADIENTACTIVECAPTION]
Local $aColors[3] = [16741960, 16741960]

Local $iWindow = WinGetHandle("Безымянный — Блокнот")
DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", $iWindow, "wstr", 0, "wstr", 0)
_WinAPI_SetSysColors($aElements, $aColors)

While 1
	Sleep(100)
WEnd


Только чтобы "Yellow" и "Red" остались желтым и красным, а "Калькулятор" с "Блокнотом" стали и остались зеленым и синим.
 
Верх