UDF > WinAPIEx > Menus & Resources > Carets >


_WinAPI_ShowCaret

Active l'affichage du curseur sur l'écran à la position courante du curseur

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

Paramètre

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

Valeur de retour

Succès: Retourne True
Échec: Retourne False

Remarques

_WinAPI_ShowCaret() affiche le curseur seulement si la fenêtre spécifiée possède le curseur, le curseur a une forme, et le curseur n'a pas été caché deux ou plusieurs fois de suite. Si une ou plusieurs de ces conditions n'est pas remplie, _WinAPI_ShowCaret() 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 réapparaîsse.

En relation

_WinAPI_HideCaret

Voir aussi

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