Поделиться через


Функция 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, курсор будет серым. Если этот параметр является дескриптором растрового рисунка, курсор является указанным растровым рисунком. Дескриптор точечных рисунков должен быть создан функцией CreateBitmap, CreateDIBitmap или LoadBitmap . Курсор отображается на экране с помощью операции XOR.

Если hBitmap является дескриптором растрового изображения, CreateCaret игнорирует параметры nWidth и nHeight ; растровое изображение определяет собственную ширину и высоту. Приложение не должно удалять hBitmap , пока курсор не будет уничтожен или заменен другим курсором.

[in] nWidth

Тип: int

Ширина курсора в логических единицах. Если этот параметр равен нулю, то для ширины устанавливается определенная системой ширина границы окна. Если hBitmap является дескриптором растрового изображения, CreateCaret игнорирует этот параметр.

[in] nHeight

Тип: int

Высота курсора в логических единицах. Если этот параметр равен нулю, для высоты устанавливается заданная системой высота границы окна. Если hBitmap является дескриптором растрового изображения, CreateCaret игнорирует этот параметр.

Возвращаемое значение

Тип: BOOL

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Параметры nWidth и nHeight указывают ширину и высоту курсора в логических единицах; точная ширина и высота в пикселях зависят от режима сопоставления окна.

CreateCaret автоматически уничтожает предыдущую фигуру курсора, если она имеется, независимо от того, какое окно принадлежит курсору. Курсор будет скрыт, пока приложение не вызовет функцию ShowCaret , чтобы сделать курсор видимым.

Система предоставляет по одному курсору для каждой очереди. Окно должно создавать курсор только в том случае, если оно имеет фокус клавиатуры или активно. Окно должно уничтожить курсор перед потерей фокуса клавиатуры или неактивным.

Виртуализация DPI

Этот API не участвует в виртуализации DPI. Параметры ширины и высоты интерпретируются как логические размеры с точки зрения рассматриваемого окна. Вызывающий поток не учитывается.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll
Набор API ext-ms-win-ntuser-caret-l1-1-0 (появилось в Windows 8)

См. также раздел

Курсоры

Основные понятия

CreateBitmap

CreateDIBitmap

DestroyCaret

GetSystemMetrics

HideCaret

LoadBitmap

Другие ресурсы

Справочные материалы

ShowCaret