Skjule et cirkumflekstegn

Hver gang programmet tegner over en skjerm under behandling av en melding annet enn WM_PAINT, det må gjøre cirkumflekstegnet usynlig ved hjelp av funksjonen HideCaret . Når programmet er ferdig tegning, vise cirkumflekstegnet på nytt ved hjelp av funksjonen ShowCaret . Hvis programmet behandler WM_PAINT-meldingen, er det ikke nødvendig å skjuler og viser cirkumflekstegn, fordi denne funksjonen gjør dette automatisk.

Følgende kodeeksempel viser hvordan du har programmet skjule cirkumflekstegnet mens du tegner et tegn på skjermen og under behandling av WM_CHAR -melding.

HWND hwnd, / / vinduet håndtere HDC hdc;     / / enhetskontekst case WM_CHAR: bryteren (wParam) {case 0x08: / / behandle en tilbake. 
             
                Break; 
 
            Case 0x09: / / behandle en fane.  
             
                Break; 
 
            Case 0x0D: / / behandle linjeskift. 
             
                Break; 
 
            tilfelle 0x1B: / / behandle en rømning. 
             
                Break; 
 
            tilfelle 0x0A: / / behandle et linjematingstegn. 
             
                Break; 
 
            standard: / / Skjul cirkumflekstegnet. 

                HideCaret(hwnd); 
 
                / / Lage tegnet på skjermen. 
 
                HDC = GetDC(hwnd); 
                MerkObjekt (hdc, GetStockObject(SYSTEM_FIXED_FONT)); 
 
                TextOut (hdc, x, y, lpszChar, 1); 
 
                ReleaseDC (hwnd, hdc); 
 
                / / Vise cirkumflekstegnet. 
 
                ShowCaret(hwnd); 
 
        } 

 

Hvis programmet kaller funksjonen HideCaret flere ganger uten å kalle ShowCaret, blir cirkumflekstegnet ikke vist før programmet kaller også ShowCaret like mange ganger.