Это курсор в окне редактирования. Первоначально понятие курсора было едиными целым для MS DOS. Курсор он был один на все случаи жизни, для редактирования или выделения.
Конечно, программа могла изменить его форму, но только это бы сразу сказалось на всех окна. Курсор был один. В Windows это понятие немного раздвоилось. Есть курсор которым мы работаем, а есть каретка которая используется при редактировании текста.
Соответственно и функции работы разные. Есть работы с курсором а есть с кареткой. Читайте - "Шаг 204 - Функции каретки (позиция редактирования)". Давайте попробуем, создаем проект на базе диалогового окна с именем TestCaret и помещаем на него элемент управления EditBox.
Создаем картинку для каретки:
И код напишем для установки новой каретки.
BOOL CTestCaretDlg::OnInitDialog() { ...... // TODO: Add extra initialization here CBitmap* pBitmap = new CBitmap; pBitmap->LoadBitmap(IDB_BITMAP1); m_Edit.CreateCaret(pBitmap); m_Edit.ShowCaret(); return TRUE; // return TRUE unless you set the focus to a control }
Запускаем смотрим:
Круто, ничего не скажешь. Стоит нам начать редактировать все вернется на свои места.