CreateCaret 函数 (winuser.h)

为系统插入点创建新形状,并将插入点的所有权分配给指定的窗口。 脱字号形状可以是线条、块或位图。

语法

BOOL CreateCaret(
  [in]           HWND    hWnd,
  [in, optional] HBITMAP hBitmap,
  [in]           int     nWidth,
  [in]           int     nHeight
);

参数

[in] hWnd

类型:HWND

拥有插入符号的窗口的句柄。

[in, optional] hBitmap

类型: HBITMAP

定义插入点形状的位图的句柄。 如果此参数为 NULL,则脱字号为实心。 如果此参数为 (HBITMAP) 1,则脱字号为灰色。 如果此参数是位图句柄,则脱字号是指定的位图。 位图句柄必须由 CreateBitmapCreateDIBitmapLoadBitmap 函数创建。

如果 hBitmap 是位图句柄, CreateCaret 将忽略 nWidthnHeight 参数;位图定义其自己的宽度和高度。

[in] nWidth

类型: int

插入点的宽度,以逻辑单元为单位。 如果此参数为零,则宽度设置为系统定义的窗口边框宽度。 如果 hBitmap 是位图句柄, CreateCaret 将忽略此参数。

[in] nHeight

类型: int

插入点的高度,以逻辑单元为单位。 如果此参数为零,则高度设置为系统定义的窗口边框高度。 如果 hBitmap 是位图句柄, CreateCaret 将忽略此参数。

返回值

类型: BOOL

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

nWidthnHeight 参数以逻辑单位指定插入点的宽度和高度;确切的宽度和高度(以像素为单位)取决于窗口的映射模式。

无论拥有脱字号的窗口是哪个窗口,CreateCaret 都会自动销毁上一个插入点形状(如果有)。 插入点将隐藏,直到应用程序调用 ShowCaret 函数以使插入点可见。

系统为每个队列提供一个插入点。 仅当窗口具有键盘焦点或处于活动状态时,才应创建插入点。 窗口应在失去键盘焦点或变为非活动状态之前销毁插入符号。

DPI 虚拟化

此 API 不参与 DPI 虚拟化。 宽度和高度参数根据所讨论的窗口解释为逻辑大小。 不考虑调用线程。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll
API 集 windows 8 中引入的 ext-ms-win-ntuser-caret-l1-1-0 ()

另请参阅

插入点

概念性

CreateBitmap

CreateDIBitmap

DestroyCaret

GetSystemMetrics

HideCaret

LoadBitmap

其他资源

引用

ShowCaret