Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] ColorPicker не работает с GUICtrlOnHover (http://forum.oszone.net/showthread.php?t=203255)

Centrinar 28-03-2011 14:21 1645612

ColorPicker не работает с GUICtrlOnHover
 
Вложений: 1
Подскажите пожалуйста, в данном скрипте не работает возможность выбора цвета...
Код:

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include "GUICtrlOnHover.au3"
#include "ColorPicker.au3"

#Region Main form
$hMain_GUI = GUICreate("Главное окно", 300, 200)
$Label = GUICtrlCreateLabel("Настройки", 10, 170, 55, 20)
GUICtrlSetFont($Label, 8.5, 400, 0)
_GUICtrl_OnHoverRegister($Label, "_Hover_Func", "_Hover_Func")
$nExit_Btn = GUICtrlCreateButton("Выход", 90, 170, 70, 20)
$Color = _GUIColorPicker_Create("",50, 50, 70, 25, "0xFFFFFF", $CP_FLAG_DEFAULT + $CP_FLAG_ARROWSTYLE + $CP_FLAG_TIP, -1, -1, -1, -1, "", "Изменить")
GUISetState(@SW_SHOW, $hMain_GUI)
#EndRegion Main form

#Region Settings form
$hStngs_GUI = GUICreate("Настройки", 400, 200)
$nStngs_Ok_Btn = GUICtrlCreateButton("ОК", 10, 170, 80, 25)
$nStngs_Close_Btn = GUICtrlCreateButton("Закрыть", 310, 170, 80, 25)
#EndRegion Settings form


While 1
    $aMsg = GUIGetMsg(1) ;Расширенная обработка событий

    Switch $aMsg[0]
        Case $GUI_EVENT_CLOSE, $nExit_Btn, $nStngs_Close_Btn
            Switch $aMsg[1]
                Case $hMain_GUI  ;Событие поступило от главного окна - завершаем работу скрипта
                    Exit
                Case $hStngs_GUI ;Событие поступило от окна настроек - закрываем его
                    GUISetState(@SW_HIDE, $hStngs_GUI)
            EndSwitch
        Case $Label
            GUISetState(@SW_SHOW, $hStngs_GUI)
    EndSwitch
WEnd

Func _Hover_Func($iCtrlID, $iParam)
    Local $sConsole_Data = "Hovered"
    Local $iLabel_Color = 0x00000FF
    Local $iLabel_FontAttrib = 4
    Local $iLabel_CursorID = 0

    If $iParam = 2 Then ;Indicates On *Leave* Hover process
        $sConsole_Data = "NOT Hovered"

        $iLabel_Color = 0x000000
        $iLabel_FontAttrib = 0
        $iLabel_CursorID = -1
    EndIf

 

    Switch $iCtrlID
        Case $Label
            GUICtrlSetColor($iCtrlID, $iLabel_Color)
            GUICtrlSetFont($iCtrlID, 8.5, 400, $iLabel_FontAttrib)
            GUICtrlSetCursor($iCtrlID, $iLabel_CursorID)
    EndSwitch
EndFunc


Creat0R 28-03-2011 14:46 1645636

А документацию кто читать будет?

Цитата:

5) IMPORTANT!
A) Do not call _GUICtrl_OnHoverRegister inside $sHover_Func/$sLeaveHover_Func functions, it's not a good idea.

B) This UDF registering WM_COMMAND and WM_LBUTTONDOWN window messages.
Please ensure that those messages are not used after including this library,
if they do, you will have to call __GUICtrl_SOH_WM_COMMAND and __GUICtrl_SOH_WM_LBUTTONDOWN inside those functions. Example:

Func MY_WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
__GUICtrl_SOH_WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
...
EndFunc
WM_COMMAND также используется в ColorPicker.au3. Их нужно подружить, замени в GUICtrlOnHover.au3:
Код:

Func __GUICtrl_SOH_WM_COMMAND($hWndGUI, $MsgID, $WParam, $LParam)
        $i__GUICtrl_SOH_LastPrimaryDownCtrlID = $LParam
EndFunc

на
Код:

Func __GUICtrl_SOH_WM_COMMAND($hWndGUI, $MsgID, $WParam, $LParam)
        $i__GUICtrl_SOH_LastPrimaryDownCtrlID = $LParam
        Return CP_WM_COMMAND($hWndGUI, $MsgID, $WParam, $LParam)
EndFunc



Время: 16:47.

Время: 16:47.
© OSzone.net 2001-