I believe the better way to do all of this would be to get the hdc for the control and send the proper message to have the winproc send you the hBrush for the background Something like this (for static controls at least) Func GUICtrlGetBkColor($hWnd) If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd) Local $hWnd_Main = _WinAPI_GetParent ($hWnd) Local $hDC = _WinAPI_GetDC($hWnd) Local $hBrush = _SendMessage($hWndMain, $WM_CTLCOLORSTATIC, $h