Что нового

Раскрашиваем рамку окна

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Не могу понять почему цвет не RGB а GRB и как можно лучше это сделать чтоб она всегда прорисовывалась? на счёт кнопок Close, Minimize и Maximize можно приделать CombineRgn и будут стандартным цветом...

Код:
#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <WinAPIEx.au3>

$hForm = GUICreate('', 300, 200)
GUISetState()

While 1
    WindowDrawFrame($hForm, 0xFF00FF) ; GRB
    Switch GUIGetMsg()
		Case -3
			Exit
	EndSwitch
WEnd

Func WindowDrawFrame($hWnd, $iColor)
	Local $hDC, $hPen, $hRgn, $hPos
    $hPos = WinGetPos($hWnd)
	$hDC = _WinAPI_GetWindowDC($hWnd)
	$hPen = _WinAPI_CreateSolidBrush($iColor)
	$hRgn = _WinAPI_CreateRectRgn(0, 0, $hPos[2], $hPos[3] + 26)
	_WinAPI_SelectObject($hDC, $hPen)

	_WinAPI_SetROP2($hDC, 3)
	_WinAPI_FrameRgn($hDC, $hRgn, $hPen, 3, 29)

	_WinAPI_DeleteObject($hRgn)
	_WinAPI_DeleteObject($hPen)
	_WinAPI_ReleaseDC($hWnd, $hDC)
EndFunc
 
Верх