函数参考


_WinAPI_ShowCaret

显示屏幕插入符当前位置的插入符.

#Include <WinAPIEx.au3>
_WinAPI_ShowCaret ( $hWnd )

参数

$hWnd 拥有插入符号的窗口句柄. 如果此参数为 0,
 本函数将为拥有插入符号的窗口搜索每一当前任务.

返回值

成功: 返回 1.
失败: 返回 0,设置@error:

注意/说明

函数仅显示拥有插入符号窗口的插入符号
 并且插入符号没有被连续两次或两次以上的隐藏.,
 如果一或多个这些条件得不到满足,本函数不执行任何操作并返回 0.
 隐藏是累积性的.如果应用程序连续调用 _WinAPI_HideCaret() 5 次,
 也必须调用本5次插入符号才会重新出现.

相关

详情参考

在MSDN中搜索


示例/演示


#Include <APIConstants.au3>
#Include <EditConstants.au3>
#Include <GUIConstantsEx.au3>
#Include <WinAPIEx.au3>

Opt('MustDeclareVars', 1)

Global $hForm, $Msg, $Input, $Button, $Duration = Default, $hBitmap = _WinAPI_CreateSolidBitmap(0, 0x00AEFF, 10, 14)

OnAutoItExitRegister('OnAutoItExit')

$hForm = GUICreate('MyGUI', 400, 93)
$Input = GUICtrlCreateInput('', 20, 20, 360, 20)
$Button = GUICtrlCreateButton('Exit', 165, 59, 70, 23)
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
GUISetState()

While 1
    $Msg = GUIGetMsg()
    Switch $Msg
        Case $GUI_EVENT_CLOSE, $Button
            ExitLoop
    EndSwitch
WEnd

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    Switch $hWnd
        Case $hForm
            Switch _WinAPI_LoWord($wParam)
                Case $Input
                    Switch _WinAPI_HiWord($wParam)
                        Case $EN_KILLFOCUS
                            _WinAPI_HideCaret($lParam)
                            _WinAPI_DestroyCaret()
                            _WinAPI_SetCaretBlinkTime($Duration)
                            $Duration = Default
                        Case $EN_SETFOCUS
                            $Duration = _WinAPI_SetCaretBlinkTime(-1)
                            _WinAPI_CreateCaret($lParam, $hBitmap)
                            _WinAPI_ShowCaret($lParam)
                    EndSwitch
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND

Func OnAutoItExit()
    _WinAPI_DeleteObject($hBitmap)
    If $Duration <> Default Then
        _WinAPI_SetCaretBlinkTime($Duration)
    EndIf
EndFunc   ;==>OnAutoItExit