Active l'affichage du curseur sur l'écran à la position courante du curseur
#include <WinAPIRes.au3>
_WinAPI_ShowCaret ( $hWnd )
$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. |
Succès: | Retourne True |
Échec: | Retourne False |
_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.
Consultez ShowCaret dans la librairie MSDN.
#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