Nascondere un accento circonflesso

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.