Что нового

Color Picker для GUI (Yashied) как подружить с WM_COMMAND

pvnn

Осваивающий
Сообщения
305
Репутация
32
Всем привет
Yashied делал UDF "Создание элементов Color Picker для GUI": http://autoit-script.ru/index.php?topic=43.0
Сейчас UDF пригодилась, но она не работает, когда я использую WM_COMMAND
Как победить?

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

#Include "ColorPicker.au3"

$Form1 = GUICreate("Form1", 312, 127, 338, 220)
$Input1 = GUICtrlCreateInput("Input1", 8, 16, 121, 21)
$Input1Change = GUICtrlCreateDummy()

$ColorHex='0x000000' ; Начальное значения цвета RGB в формате '0x'+'Hex'
$Picker1= _GUIColorPicker_Create('', 176, 16, 121, 21, $ColorHex, BitOR($CP_FLAG_CHOOSERBUTTON, $CP_FLAG_ARROWSTYLE, $CP_FLAG_MOUSEWHEEL), 0, -1, -1, 0, 'Выберите цвет','Выбор')


GUIRegisterMsg( $WM_COMMAND, "WM_COMMAND" ) ; Если закомментировать, то работает
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Input1Change
			ConsoleWrite(@CRLF&GUICtrlRead($Input1))
	EndSwitch
WEnd


Func WM_COMMAND( $hWnd, $iMsg, $wParam, $lParam )
  Local $hWndFrom = $lParam
  Local $iCode = BitShift( $wParam, 16 )
  Local $hInput1 = GUICtrlGetHandle( $Input1 )
  Switch $hWndFrom
	  Case $hInput1
      Switch $iCode
        Case $EN_CHANGE
          GUICtrlSendToDummy( $Input1Change )
      EndSwitch
  EndSwitch
  Return $GUI_RUNDEFMSG
EndFunc
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
pvnn [?]
она не работает, когда я использую WM_COMMAND
В начале вашей функции WM_COMMAND используйте такую конструкцию:

Код:
Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    Local $iRet = CP_WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    
    If $iRet <> $GUI_RUNDEFMSG Then
        Return $iRet
    EndIf
    
    ...
EndFunc
 
Верх