Compartilhar via


Creating a Caret

Windows Mobile Not SupportedWindows Embedded CE Supported

9/9/2008

A acento circunflexo é um linha de flash ou bloco na área cliente a janela que indica o local onde serão inseridos texto ou elementos gráficos. Windows Embedded CE fornece uma acento circunflexo por fila de mensagens. Você deve criar um acento circunflexo apenas quando seu associado janela tem o foco do teclado ou é ativo. Você deve destruir o acento circunflexo antes da janela perde a foco do teclado ou torna-se inativo. Depois de criar um acento circunflexo, você pode alteração como freqüentes um acento circunflexo pisca, modifique a posição acento circunflexo em uma janela, ou temporariamente remover um acento circunflexo de exibição, ocultando-lo. Um aplicativo deve criar e exibir um acento circunflexo ao processamento de WM_SETFOCUS mensagem. Windows Embedded CE envia a mensagem WM_SETFOCUS para uma janela quando ela recebe o foco do teclado.

Para criar e exibir um acento circunflexo em uma janela

  1. Chamar o CreateCaret função quando a janela recebe foco. Windows Embedded CE formata um acento circunflexo por invertendo a cor pixel dentro do retângulo especificado por altura, largura e posição do acento circunflexo.

  2. Definir a posição acento circunflexo chamado de SetCaretPos função.

  3. Tornar visível o acento circunflexo, chamado de ShowCaret função. Quando aparece o acento circunflexo, ele inicia intermitente.

O seguinte exemplo de código mostra como criar e exibir um acento circunflexo.

// Caret height and width
#define CARETHEIGHT 15
#define CARETWIDTH   2

if (!CreateCaret(hWnd, 0, CARETWIDTH, CARETHEIGHT))
    MessageBox(hWnd, TEXT("CreateCaret failed."), TEXT("CreateCaret"), 
               MB_OK);

// Show the caret at the intial position (0,0).
ShowCaret(hWnd);

O tempo decorrido, em milissegundos, que é exigido para inverter o acento circunflexo é chamado de piscar tempo. O memória flash tempo é o tempo decorrido, em milissegundos, que é exigido para exibir, inverter e restaurar exibir da acento circunflexo. O memória flash tempo de um acento circunflexo é duas vezes como Grande como o tempo piscar. O acento circunflexo será piscar tanto quanto o segmento que possui as mensagens processos fila de mensagens. Um usuário pode definir o tempo piscar do acento circunflexo usando o Painel de controle, e aplicativos devem manter as configurações que o usuário escolheu. Um aplicativo pode determinar o tempo piscar acento circunflexo usando o GetCaretBlinkTime função. Se você estiver escrevendo um aplicativo que permite que o usuário para ajustar o tempo piscar, such as um aplicativo Control Panel, use o SetCaretBlinkTime função para definir a taxa tempo piscar como um número especificado de milissegundos.

O seguinte exemplo de código mostra como o duplo o atual tempo piscar para o acento circunflexo.

UINT i = GetCaretBlinkTime();
SetCaretBlinkTime(i * 2);

Para determinar a posição acento circunflexo, use o GetCaretPos função. Um aplicativo pode mover um acento circunflexo em uma janela, usando o SetCaretPos função. Uma janela pode mover um acento circunflexo somente se ele já possui o acento circunflexo. SetCaretPos Pode mover o acento circunflexo ou não esteja visível.

O seguinte mostra como obter a posição de acento circunflexo exemplo de código e exibe essa posição em uma caixa mensagem.

POINT pt; //Position of the caret in the client window 
GetCaretPos(&pt);
wsprintf(szTemp,TEXT("X Pos: %d Y Pos: %d"), pt.x, pt.y);
MessageBox(hWnd, szTemp, TEXT("GetCaretPos"), MB_OK);

Você poderá temporariamente remover permanentemente um acento circunflexo por ocultando-lo, ou você pode remover o acento circunflexo por destrui-lo. Para ocultar o acento circunflexo, use o HideCaret função. Isso é útil quando o aplicativo deve redesenhar a Tela ao processamento uma mensagem, mas deve manter o acento circunflexo out of exibição. Quando o aplicativo termina desenho, ela pode exibir o acento circunflexo novamente usando o ShowCaret função. Ocultar o acento circunflexo não destruir sua forma ou invalidar o ponto de inserção. Ocultar o acento circunflexo é cumulativo; Isto é, se o aplicativo chama HideCaret Cinco vezes, ele deve também chamar ShowCaret Cinco vezes antes de acento circunflexo reaparecerá.

Para remover o acento circunflexo a partir de Tela e destruir sua forma, use o DestroyCaret função. DestroyCaret destrói o acento circunflexo somente se a janela envolvidos na atual tarefa possui o acento circunflexo.

See Also

Concepts

Using Resources

Other Resources

GWES Application Development