По получении фокуса клавиатуры, окно следует создавать и отображать курсор. Используйте функцию CreateCaret для создания знак вставки в данном окне. Затем можно вызвать SetCaretPos для задания текущей позиции курсора и ShowCaret чтобы сделать курсор видимым.
Система посылает сообщение WM_SETFOCUS окна приема фокус ввода от клавиатуры; Таким образом приложение должно создать и отобразить курсор при обработке этого сообщения.
HWND hwnd, / / окно обработать int x; / / горизонтальных координат курсора int y; / / вертикальные координаты курсора int nWidth; / / Ширина курсора int nHeight; / / Высота курсора char * lpszChar; / / указатель на символ дело WM_SETFOCUS: / / создать сплошной черный курсор.
CreateCaret (hwnd, (HBITMAP) NULL, nWidth, nHeight);
/ / Отрегулируйте положение курсора в координатах клиента.
SetCaretPos (x, y);
/ / Отображения курсора.
ShowCaret(hwnd);
перерыв
Для создания курсора, основанный на точечный рисунок, при использовании CreateCaretнеобходимо указать дескриптор точечного рисунка. Графических приложений можно использовать для создания точечного рисунка и компилятор ресурсов для добавления изображения к ресурсам вашего приложения. Приложение может затем использовать LoadBitmap функция загрузить дескриптор точечного рисунка. Например можно заменить строку CreateCaret в предыдущем примере следующие строки для создания растрового изображения курсора.
/ / Загрузить курсора, определяемый приложением ресурс.
hCaret = LoadBitmap (hinst, MAKEINTRESOURCE(120));
/ / Создать растровое изображение курсора.
CreateCaret (hwnd, hCaret, 0, 0)
Вы можете использовать, CreateBitmap или CreateDIBitmap функции для получения дескриптора точечного изображения курсора. Для получения дополнительных сведений о точечных рисунков, см. растровые изображения.
Если приложение указывает дескриптор точечного рисунка, CreateCaret игнорирует параметры Ширина и высота. Точечный рисунок определяет размер курсора.