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.