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 函数创建。 插入点通过 XOR 操作绘制到屏幕。

如果 hBitmap 是位图句柄, CreateCaret 将忽略 nWidthnHeight 参数;位图定义其自己的宽度和高度。 在插入符号被销毁或替换为另一个插入点之前,应用程序不应删除 hBitmap

[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