UDF > WinAPIEx > Menus & Resources > Carets >


_WinAPI_SetCaretBlinkTime

Définit le temps de clignotent le curseur

#include <WinAPIRes.au3>
_WinAPI_SetCaretBlinkTime ( $iDuration )

Paramètre

$iDuration Le nouveau temps de clignotement, en millisecondes. Si ce paramètre est (-1), le curseur ne clignote pas.

Valeur de retour

Succès: Retourne le temps de clignotement précédent, en millisecondes.
Échec: Définit @error <> 0, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur.

Remarque

L'utilisateur peut définir le temps du clignotement en utilisant le Panneau de configuration. Les applications doivent respecter le paramétrage que l'utilisateur a choisi. Cette fonction doit être utilisée seulement par l'application qui permet à l'utilisateur de définir le temps de clignotement, comme l'applet du Panneau de configuration.

Voir aussi

Consultez SetCaretBlinkTime dans la librairie MSDN.

Exemple

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WinAPIConv.au3>
#include <WinAPIGdi.au3>
#include <WinAPIHObj.au3>
#include <WinAPIRes.au3>
#include <WindowsConstants.au3>

Global $g_vDuration = Default, $g_hBitmap = _WinAPI_CreateSolidBitmap(0, 0x00AEFF, 10, 14)

OnAutoItExitRegister('OnAutoItExit')

Local $hForm = GUICreate('Test '& StringReplace(@ScriptName, '.au3', '()'), 400, 93)
Local $idInput = GUICtrlCreateInput('', 20, 20, 360, 20)
Local $idButton = GUICtrlCreateButton('Exit', 165, 59, 70, 23)
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
GUISetState(@SW_SHOW)

Global $iMsg
Do
    $iMsg = GUIGetMsg()
Until $iMsg = $GUI_EVENT_CLOSE Or $iMsg = $idButton

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    #forceref $iMsg

    If $hWnd = $hForm Then
        If _WinAPI_LoWord($wParam) = $idInput Then
            Switch _WinAPI_HiWord($wParam)
                Case $EN_KILLFOCUS
                    _WinAPI_HideCaret($lParam)
                    _WinAPI_DestroyCaret()
                    _WinAPI_SetCaretBlinkTime($g_vDuration)
                    $g_vDuration = Default
                Case $EN_SETFOCUS
                    $g_vDuration = _WinAPI_SetCaretBlinkTime(-1)
                    _WinAPI_CreateCaret($lParam, $g_hBitmap)
                    _WinAPI_ShowCaret($lParam)
            EndSwitch
        EndIf
    EndIf
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND

Func OnAutoItExit()
    _WinAPI_DeleteObject($g_hBitmap)
    If Not IsKeyword($g_vDuration) Then
        _WinAPI_SetCaretBlinkTime($g_vDuration)
    EndIf
EndFunc   ;==>OnAutoItExit