WinApi функция CreateCaret
Описание:
function CreateCaret(hWnd: HWND; hBitmap: HBITMAP; nWidth, nHeight: Integer): BOOL;
Функция создает новую форму для системной каретки и прикрепляет ее к определенному окну. Каретка может иметь форму линии, блока или форму, определенную графическим изображением.
Параметры:
hWnd: Хендл окна, которому будет принадлежать каретка.
hBitmap: Хендл графического изображения (Bitmap), которое определяет форму каретки. Если этот параметр равен 0, каретка будет сплошной. Если параметр равен 1, каретка будет серой. Если параметр является индентификатором изображения, форма каретки определяется изображением. Изображение должно быть создано с помощью функций CreateBitmap, CreateDibBitmap или LoadBitmap.
Если параметр hBitmap является индентификатором изображения, параметры nWidth и Height игнорируются.
nWidth: Определяет шширину каретки в логических единицах. Если этот параметр равен 0, ширина будет установленной равной ширине границы окна. Если параметр hBitmap является хендлом изображения, функция CreateCaret игнорирует параметр nWidth.
nHeight: Определяет высоту каретки в логических единицах. Если этот параметр равен 0, высота будет установленной равной высоте границы окна. Если параметр hBitmap является хендлом изображения, функция CreateCaret игнорирует параметр nHeight.
Возвращаемые значения
Если функция завершилась успешно, возвращаемое значение является установкой конфигурации.
Если функция совершила ошибку, она возвращает 0. Функция GetLastError не предоставляет расширенной информации об ошибке.
Замечания
Параметры nWidth и nHeight определяют ширину и высоту каретки в логических единицах. Чтоб указывать высоту и ширину в пикселах, необходимо сделать изменения в системе координат окна.
Функция CreateCaret автоматически разрушает предыдущую форму каретки, если она была. Каретка невидима, пока приложение не вызовет функцию ShowCaret.
Система предоставляет по одной каретке на очередь. Окно должно создавать каретку только тогда, когда оно получает фокус или активируется. Окно должно разрушить каретку перед потерей фокуса или отмене активации.
Вы можете получить ширину или высоту границы системного окна, вызвав функцию GetSystemMetrics, подставляя в параметр константы SM_CXBORDER и SM_CYBORDER. Использование ширины и высоты границы окна гарантирует то, что каретка будет видна на мониторах с высоким разрешением.
Материал взят из:
Русская спpавка по Windows API