CreateCaret
Функция CreateCaret создает новый внешний вид для системной каретки и присваивает владение кареткой указанному окну. Каретка может быть прямоугольником, линией или битовым образом.
BOOL CreateCaret (
HWND
hWnd
, // дескриптор окна-владельца
HBITMAP
hBitmap
, // дескриптор битового образа для каретки
int
nWidth
, // ширина каретки
int
nHeight
// высота каретки
);
Параметры
hWnd
- идентифицирует окно, владеющее кареткой.
hBitmap - идентифицирует
битовый образ, который определяет вид каретки. Если значение этого параметра равно
NULL , каретка
представляет собой сплошной прямоугольник. Если значение этого параметра равно
( HBITMAP
) 1, каретка представляет собой серый прямоугольник. Если значение этого параметра
является дескриптором битового образа, то каретка представляет собой указанный
битовый образ. Дескриптор битового образа должен быть создан функциями
CreateBitmap
, CreateDIBitmap
или LoadBitmap
.
Если значение
hBitmap является дескриптором битового образа,
CreateCaret
игнорирует значения параметров nWidth
и nHeight
; битовый образ задает свои собственные ширину и высоту.
nWidth
- определяет ширину каретки в логических единицах. Если значение этого параметра
равно нулю, ширина устанавливается в определяемую системой ширину рамки окна.
Если значение hBitmap
является дескриптором битового образа, CreateCaret
игнорирует значение параметра
nWidth .
nHeight - определяет высоту каретки в логических
единицах. Если значение этого параметра равно нулю, высота устанавливается в определяемую
системой высоту рамки окна. Если значение
hBitmap является дескриптором битового образа,
CreateCaret
игнорирует значение параметра nHeight
.
Возвращаемые значения
В
случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль. Для получения дополнительной информации об
ошибке вызовите функцию GetLastError
.
Комментарии
Значения параметров
nWidth
and
nHeight определяют
ширину и высоту каретки в логических единицах. Точные ширина и высота в пикселях
зависят от режима отображения окна.
CreateCaret автоматически разрушает предыдущий
вид каретки, если таковая есть, независимо от окна-владельца.
Пока приложение не вызовет функцию ShowCaret
, каретка является скрытой.
Каретка является разделяемым ресурсом: в системе присутствует
только одна каретка. Окно должно отображать каретку, только если оно активно или
имеет фокус ввода с клавиатуры. Окно должно разрушить каретку перед тем, как оно
потеряет фокус ввода с клавиатуры или станет неактивным.
Вы можете получить системные ширину и высоту окна, используя функцию
GetSystemMetrics со значениями параметров
SM _
CXBORDER и
SM _
CYBORDER . Использование ширины или высоты рамки
окна гарантирует, что каретка будет видна на экране с высоким разрешением.
См. также
CreateBitmap , CreateDIBitmap , DestroyCaret , GetSystemMetrics , HideCaret , LoadBitmap , ShowCaret .