Een Caret verbergen

Wanneer uw toepassing een scherm hertekent tijdens het verwerken van een bericht dan andere WM_PAINT, het moet de caret onzichtbaar maken met behulp van de functie HideCaret . Wanneer uw toepassing is voltooid de caret tekening, opnieuw met behulp van de functie ShowCaret . Als uw toepassing de WM_PAINT-bericht verwerkt, is het niet nodig om te verbergen en opnieuw weergeven van de caret, omdat deze functie dit automatisch doet.

Het volgende codevoorbeeld ziet u hoe uw toepassing de caret verbergen terwijl u tekent een teken op het scherm en tijdens de verwerking van het WM_CHAR bericht.

HWND hwnd, / / vensteringang HDC hdc;     / / device-context case WM_CHAR: switch (wParam) {geval 0x08: / / proces een backspace. 
             
                breken; 
 
            Case 0x09: / / een tabblad proces.  
             
                breken; 
 
            Case 0x0D: / / proces een regelterugloopteken. 
             
                breken; 
 
            Case 0x1B: / / een ontsnapping proces. 
             
                breken; 
 
            geval 0x0A: / / proces een regelinvoer. 
             
                breken; 
 
            standaard: / / de caret verbergen. 

                HideCaret(hwnd); 
 
                / / Het teken op het scherm tekent. 
 
                HDC = GetDC(hwnd); 
                ObjectSelecteren (hdc, GetStockObject(SYSTEM_FIXED_FONT)); 
 
                TextOut (hdc, x, y, lpszChar, 1); 
 
                ReleaseDC (hwnd, hdc); 
 
                / / De caret weergeven. 
 
                ShowCaret(hwnd); 
 
        } 
 

Als uw toepassing de functie HideCaret meerdere malen roept zonder ShowCaret, de caret niet getoond totdat de toepassing ook ShowCaret het zelfde aantal tijden roept.