Como usar operações de edição de rich text
Um aplicativo pode enviar mensagens para recuperar ou localizar texto em um controle de edição avançado. Você pode recuperar o texto selecionado ou um intervalo de texto especificado.
Para obter o texto selecionado em um controle de edição avançada, use a mensagem EM_GETSELTEXT. O texto é copiado para a matriz de caracteres especificada. Você deve garantir que a matriz seja grande o suficiente para conter o texto selecionado mais um caractere nulo de encerramento.
Para recuperar um intervalo especificado de texto, use a mensagem EM_GETTEXTRANGE. A estrutura deTEXTRANGEusada com esta mensagem especifica o intervalo de texto a ser recuperado e aponta para uma matriz de caracteres que recebe o texto. Aqui, novamente, o aplicativo deve garantir que a matriz seja grande o suficiente para o texto especificado mais um caractere nulo de encerramento.
Você pode pesquisar uma cadeia de caracteres em um controle de edição avançado usando as mensagens EM_FINDTEXT ou EM_FINDTEXTEX, ou seus equivalentes Unicode, EM_FINDTEXTW e EM_FINDTEXTEXW. A estrutura de FINDTEXT usada com as versões não estendidas especifica o intervalo de texto a ser pesquisado e a cadeia de caracteres a ser pesquisada. As versões estendidas usam uma estruturaFINDTEXTEX, que especifica as mesmas informações e também recebe os pontos de início e fim do intervalo de caracteres do texto encontrado. Você também pode especificar opções como se a pesquisa diferencia maiúsculas de minúsculas.
O que precisa de saber
Tecnologias
Pré-requisitos
- C/C++
- Programação da interface do usuário do Windows
Instruções
Usar uma operação de edição de rich text
A função de exemplo a seguir localiza o texto especificado dentro do texto selecionado em um controle de edição avançado que oferece suporte a Unicode. Se o alvo for encontrado, ele se torna a nova seleção.
BOOL FindTextInSelection(HWND hRich, WCHAR* target)
{
CHARRANGE selectionRange;
SendMessage(hRich, EM_EXGETSEL, 0, (LPARAM)&selectionRange);
FINDTEXTEX ftex;
ftex.lpstrText = target;
ftex.chrg.cpMin = selectionRange.cpMin;
ftex.chrg.cpMax = selectionRange.cpMax;
LRESULT lr = SendMessage(hRich, EM_FINDTEXTEXW, (WPARAM)FR_DOWN, (LPARAM) &ftex);
if (lr >= 0)
{
LRESULT lr1 = SendMessage(hRich, EM_EXSETSEL, 0, (LPARAM)&ftex.chrgText);
SendMessage(hRich, EM_HIDESELECTION, (LPARAM)FALSE, 0);
return TRUE;
}
return FALSE;
}
Comentários
Microsoft Rich Edit 3.0 também suporta a função HexToUnicode Input Method Editor (IME), que permite que um usuário converta entre hexadecimal e Unicode usando teclas de atalho. Para obter mais informações, consulte do IME HexToUnicode.
Tópicos relacionados