Ocultando um acento circunflexo

Sempre que seu aplicativo redesenha a tela ao processamento uma mensagem diferente do WM_PAINT, ele deve fazer o acento circunflexo invisível usando o HideCaret função. Quando seu aplicativo for concluído desenho, exiba novamente o acento circunflexo usando a ShowCaret função. Se seu aplicativo processa a mensagem WM_PAINT, não é necessário ocultar e reexibir o acento circunflexo, porque essa função não faz isso automaticamente.

O exemplo de código a seguir mostra como fazer com que seu aplicativo ocultar o acento circunflexo ao mesmo tempo em que um personagem na tela de desenho e ao processar a mensagem WM_CHAR.

HWND hwnd, / / janela manipular HDC hdc;     / / contexto dispositivo case WM_CHAR: interruptor (wParam) {case 0x08: / / processo de um retrocesso. 
             
                quebra; 
 
            caso 0x09: / / processo de uma guia.  
             
                quebra; 
 
            caso 0x0D: / / processo de um retorno de carro. 
             
                quebra; 
 
            caso 0x1B: / / processo de uma fuga. 
             
                quebra; 
 
            caso 0x0A: / / processo de uma alimentação de linha. 
             
                quebra; 
 
            padrão: / / ocultar o acento circunflexo. 

                HideCaret(hwnd); 
 
                / / Desenhar o personagem na tela. 
 
                hDC = GetDC(hwnd); 
                SelectObject (hdc, GetStockObject(SYSTEM_FIXED_FONT)); 
 
                TextOut (hdc, x, y, lpszChar, 1); 
 
                ReleaseDC (hwnd, hdc); 
 
                / / Exibir o cursor. 
 
                ShowCaret(hwnd); 
 
        } 

 

Se seu aplicativo chama HideCaret função várias vezes sem chamar ShowCaret, o acento circunflexo não será exibido até o aplicativo também chama ShowCaret o mesmo número de vezes.