#Include <WinAPI.au3>
#Include <WindowsConstants.au3>
Global $WINDOW_TO_QUERY, $___RGB
GUIRegisterMsg($WM_CTLCOLORSTATIC,"MY_CTLCOLOR")
GUIRegisterMsg($WM_CTLCOLOREDIT,"MY_CTLCOLOR")
GUIRegisterMsg($WM_CTLCOLORBTN,"MY_CTLCOLOR")
GUICreate('Test', 200, 200)
$Input = GUICtrlCreateInput('Simple text', 20, 20, 160, 20)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetBkColor(-1, 0xFAFAFA)
GUISetState()
MsgBox(0, '', '0x' & Hex(_WinAPI_GetTextColor(GUICtrlGetHandle($Input))))
func _WinAPI_GetTextColor($hWnd)
; Prog@ndy
Global $___RGB = -1
$WINDOW_TO_QUERY = $hWnd
_WinAPI_RedrawWindow($hWnd,0,0,$RDW_INVALIDATE+$RDW_UPDATENOW)
Do
Sleep(10)
Until $___RGB <> -1
Return $___RGB
endfunc; _WinAPI_GetTextColor
Func MY_CTLCOLOR($hWnd,$uMsg,$wParam, $lParam)
; Prog@ndy
If $lParam = $WINDOW_TO_QUERY Then
Local $RGB = DllCall('gdi32.dll', 'int', 'GetTextColor', 'ptr', $wParam)
If Not @error Then
Global $___RGB = $RGB[0]
Else
Global $___RGB = -2
EndIf
EndIf
Return 'GUI_RUNDEFMSG'
EndFunc