Всякий раз, когда ваше приложение перерисовывает экран при обработке сообщения не WM_PAINT, он должен сделать курсор невидимым с помощью функции HideCaret . Когда приложение завершает рисование, повторно отобразить курсор, используя функцию ShowCaret . Если приложение обрабатывает сообщение WM_PAINT, нет необходимости скрыть и отобразить курсор, потому что эта функция делает это автоматически.
В следующем примере кода показано, как скрыть курсор во время рисования символа на экране и во время обработки сообщения WM_CHAR приложение.
HWND hwnd, / / окно обработать HDC hdc; / / контекст устройства, дело WM_CHAR: переключатель (wParam) {, дело 0x08: / / процесса backspace.
перерыв;
дело 0x09: / / процесса вкладки.
перерыв;
дело 0x0D: / / процесс возврата каретки.
перерыв;
дело 0x1B: / / процесс побег.
перерыв;
дело 0x0A: / / процесса перевода строки.
перерыв;
по умолчанию: / / скрыть курсора.
HideCaret(hwnd);
/ / Рисовать символов на экране.
HDC = GetDC(hwnd);
SelectObject (hdc, GetStockObject(SYSTEM_FIXED_FONT));
TextOut (hdc, x, y, lpszChar, 1);
ReleaseDC (hwnd, hdc);
/ / Отображения курсора.
ShowCaret(hwnd);
}
Если приложение вызывает функцию HideCaret несколько раз без вызова ShowCaret, курсор не будет отображаться до тех пор, пока приложение также вызывает ShowCaret же количество раз.