Что нового

Необходимо узнать цвет контрола

Ryabtsev

Новичок
Сообщения
2
Репутация
0
Добрый день!
Необходимо узнать цвет фона у контрола Edit, это возможно?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Ryabtsev
Да. Можно узнать цвет чего угодно. Достаточно навести курсор мыши в нужное место при запущенной утилите - Au3Info, которая лежит в корне каталога с AutoIt.
1. Запускаешь утилиту
2. Нажимаешь Ctrl+Alt+F (нужно чтобы исчезла надпись Frozen в заголовке окна утилиты)
3. Открываешь в утилите вкладку Mouse, наводишь курсор в нужное место и смотришь графу Color
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 471
Репутация
2 401
Kaster [?]
Достаточно навести курсор мыши в нужное место при запущенной утилите - Au3Info
;D Мне кажется автору нужно это сделать программно...

Ryabtsev [?]
Необходимо узнать цвет фона у контрола Edit
Примерно так:

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$hGUI = GUICreate("_ControlGetColor Example", 300, 200)
$nEdit = GUICtrlCreateEdit("", 20, 40, 260, 120)
GUISetState(@SW_SHOW, $hGUI)

$nOriginal_Color = 0xFFF0F0
GUICtrlSetBkColor($nEdit, $nOriginal_Color)
$nColor = _ControlGetColor($hGUI, "", $nEdit)

MsgBox(64, 'Title', _
	StringFormat('Control set color:\t\t\t0x%X\nColor return from _ControlGetColor:\t0x%X\n\nColors are identical:\t\t\t%s', _
	$nOriginal_Color, $nColor, ($nOriginal_Color == $nColor)))

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd

Func _ControlGetColor($sTitle, $sText, $iCtrlID)
	Local $hCtrl, $aCtrlPos, $iOpt, $nColor
	
	$hCtrl = ControlGetHandle($sTitle, $sText, $iCtrlID)
	$aCtrlPos = ControlGetPos($sTitle, $sText, $iCtrlID)
	
	$iOpt = Opt("PixelCoordMode", 0)
	$nColor = PixelGetColor($aCtrlPos[0]+1, $aCtrlPos[1]+1, $hCtrl)
	Opt("PixelCoordMode", $iOpt)
	
	Return $nColor
EndFunc
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Автор
R

Ryabtsev

Новичок
Сообщения
2
Репутация
0
Спасибо за ответ. Но дело в том, что контрол, который я проверяю делаю не сам, поэтому GUI не подойдет. Я уже выяснил что это невозможно :( Только если мышкой пиксель искать, но это бред.. :smile:
 
Верх