Como usar operações de texto de edição avançada
Um aplicativo pode enviar mensagens para recuperar ou localizar texto em um controle de edição avançada. 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ê precisa 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 TEXTRANGE usada com essa 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 terminação.
Você pode procurar 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 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 estrutura FINDTEXTEX , que especifica as mesmas informações e também recebe os pontos inicial e final 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 você precisa saber
Tecnologias
Pré-requisitos
- C/C++
- Programação da interface do usuário do Windows
Instruções
Usar uma operação de rich edit text
A função de exemplo a seguir localiza o texto especificado dentro do texto selecionado em um controle rich edit que oferece suporte a Unicode. Se o destino for encontrado, ele se tornará 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 oferece suporte 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 HexToUnicode IME.
Tópicos relacionados