Что нового

Не понимаю как работает _WinAPI_GetBkColor

Ufo

Новичок
Сообщения
12
Репутация
0
Код:
#Include <WinAPIEx.au3>
$w = GUICreate ("test", 200, 200)
$l = GUICtrlCreateLabel ("", 200, 200)
GUICtrlSetBkColor ($l, 0x00ff00)
GUISetState (@SW_SHOW)
ConsoleWrite ("BkColor = " & _WinAPI_GetBkColor($l) & @LF)

Do
Until GUIGetMsg() = -3

Как сделать чтоб заработало? Надо узнать бэкграунд цвет лэйбла. Читал хелп и описание на английском, но для меня загадка чем device handle отличается от других.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Код:
#include <WinAPIEx.au3>

$w = GUICreate("test", 200, 200)
$l = GUICtrlCreateLabel("", 20, 20)
GUICtrlSetBkColor($l, 0x00FF00)
GUISetState(@SW_SHOW)

$hDC = _WinAPI_GetDC(GUICtrlGetHandle($l))
ConsoleWrite("BkColor = 0x" & Hex(_WinAPI_GetPixel($hDC, 1, 1), 6) & @LF)
_WinAPI_ReleaseDC(GUICtrlGetHandle($l), $hDC)

Do
Until GUIGetMsg() = -3
 
Автор
U

Ufo

Новичок
Сообщения
12
Репутация
0
С GetPixel возникают доп. вопросы. Что если окно транспарентно (прозрачно на процент, но это я сейчас проверю)? всё ок И означает ли, что GetBkColor не применим или не работает? Эта функция по идее бъёт прямой наводкой на то, что мне нужно.

Вот так не работает:
Код:
ConsoleWrite("BkColor = 0x" & Hex(_WinAPI_GetBkColor($hDC), 6) & @LF)


Для чего?:
Код:
_WinAPI_ReleaseDC(GUICtrlGetHandle($l), $hDC)
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Почитай в Google про то, что такое DC в API, и все вопросы отпадут сами собой.
 
Верх