Ogni volta che l'applicazione ridisegna un schermo durante l'elaborazione di un messaggio diverso da WM_PAINT, essa deve rendere il punto di inserimento invisibile utilizzando la funzione HideCaret . Quando è finito l'applicazione di disegno, visualizzare nuovamente il punto di inserimento utilizzando la funzione ShowCaret . Se l'applicazione elabora il messaggio WM_PAINT, non è necessario nascondere e visualizzare nuovamente l'accento circonflesso, perché questa funzione fa questo automaticamente.
Nell'esempio di codice seguente viene illustrato come avere applicazione nascondere l'accento circonflesso mentre disegna un personaggio sullo schermo e durante l'elaborazione del messaggio WM_CHAR.
HWND hwnd, / / handle di finestra HDC hdc; / / contesto di periferica case WM_CHAR: interruttore (wParam) {caso 0x08: / / processo un backspace.
pausa;
caso 0x09: / / processo una scheda.
pausa;
caso 0x0D: / / processo un ritorno a capo.
pausa;
caso 0x1B: / / processo una via di fuga.
pausa;
caso 0x0A: / / processo un avanzamento riga.
pausa;
impostazione predefinita: / / Nascondi il punto di inserimento.
HideCaret(hwnd);
/ / Disegnare il personaggio sullo schermo.
HDC = GetDC(hwnd);
SelectObject (hdc, GetStockObject(SYSTEM_FIXED_FONT));
TextOut (hdc, x, y, lpszChar, 1);
ReleaseDC (hwnd, hdc);
/ / Display il punto di inserimento.
ShowCaret(hwnd);
}
Se l'applicazione chiama la funzione HideCaret più volte senza chiamare ShowCaret, il punto di inserimento non verrà visualizzata fino a quando l'applicazione chiama anche ShowCaret lo stesso numero di volte.