CreateCaret

CreateCaret

VB声明

Declare Function CreateCaret Lib "user32" Alias "CreateCaret" (ByVal hwnd As Long, ByVal hBitmap As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long

说明

根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符。插入符可以是一根短线、一个方块或者一幅位图。通常用插入符指示文字在文字框中的插入位置

返回值

Long,非零表示成功,零表示失败。会设置GetLastError

参数表

参数

类型及说明

hwnd

Long,拥有插入符的那个窗口的句柄

hBitmap

Long,用作插入符的一幅位图的句柄。可以是0或1;在这种情况下,插入符可通过nWidth和nHeight参数创建。如设为1,则新插入符以灰色显示;而不是传统的黑色

nWidth

Long,采用逻辑单位的插入符的宽度

nHeight

Long,采用逻辑单位的插入符的高度

注解

如创建一个插入符,会同时清除原先的插入符;效果等同于DestroyCaret函数。在vb的LostFocus事件期间,不要试图用DestroyCaret函数清除一个插入符。这是由于vb的LostFocus事件不会接收DestroyCaret直到另一个窗口已经有焦点。因此,倘若在那个时候调用DestroyCaret,会破坏其他窗口的插入符。如果准备自己管理插入符,可以(而且应该)在WM_KILLFOCUS消息期间清除插入符

在vb里使用

可以使用。但在应用程序切换时,标准的vb文本控件不能处理GotFocus 和 LostFocus事件。因此,很难知道何时为一个控件设置插入符。此外,vb假设插入符为一根短竖线,并据此定义它的位置,所以其他形式的插入符可能无法正确定位

Top