UDF > WinAPIEx > Menus & Resources > Carets >


_WinAPI_HideCaret

Supprime l'affichage du curseur sur l'écran

#include <WinAPIRes.au3>
_WinAPI_HideCaret ( $hWnd )

Paramètre

$hWnd Handle de la fenêtre qui possède le curseur. Si ce paramètre est 0, _WinAPI_HideCaret() recherche la tâche en cours pour trouver la fenêtre qui possède le curseur.

Valeur de retour

Succès: Retourne True.
Échec: Retourne False, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur.

Remarques

_WinAPI_HideCaret() masque le curseur seulement si la fenêtre spécifiée possède le curseur. Si la fenêtre spécifiée ne possède pas le curseur, _WinAPI_HideCaret() ne fait rien et retourne 0.

Le masquage du curseur est cumulatif. Si votre application appelle _WinAPI_HideCaret() cinq fois de suite, elle doit également appeler _WinAPI_ShowCaret() cinq fois avant que le curseur soit affiché.

En relation

_WinAPI_ShowCaret

Voir aussi

Consultez HideCaret 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