Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O usuário pode selecionar texto em um controle de edição avançado usando o mouse ou o teclado. A seleção atual é o intervalo de caracteres selecionados ou a posição do ponto de inserção se nenhum caractere for selecionado. Um aplicativo pode obter informações sobre a seleção atual, defini-la, determinar quando ela é alterada e mostrar ou ocultar o realce da seleção.
O que precisa de saber
Tecnologias
Pré-requisitos
- C/C++
- Programação da interface do usuário do Windows
Instruções
Interaja com a seleção atual
Para determinar a seleção atual em um controle de edição avançado, use a mensagem EM_EXGETSEL. Para definir a seleção atual, use a mensagem EM_EXSETSEL. A estrutura CHARRANGE é usada com ambas as mensagens e especifica um intervalo de caracteres. Para recuperar informações sobre o conteúdo da seleção atual, você pode usar a mensagem EM_SELECTIONTYPE.
Um aplicativo pode detetar quando a seleção atual muda processando o código de notificação EN_SELCHANGE. O código de notificação especifica uma SELCHANGE estrutura que contém informações sobre a nova seleção. Um controle de edição avançado envia esse código de notificação somente se você habilitá-lo usando a mensagem EM_SETEVENTMASK.
Por padrão, um controle de edição avançado mostra e oculta o realce de seleção quando ele ganha e perde o foco. Você pode mostrar ou ocultar o realce da seleção a qualquer momento usando a mensagem EM_HIDESELECTION. Por exemplo, um aplicativo pode fornecer uma caixa de diálogo Pesquisar para localizar texto em um controle de edição avançada. O aplicativo pode selecionar o texto correspondente sem fechar a caixa de diálogo, caso em que deve usar a mensagem EM_HIDESELECTION para realçar a seleção.
Assim como nos controles de edição, você pode especificar o estilo de janela ES_NOHIDESEL para evitar que um controle de edição avançado oculte o realce de seleção quando perder o foco.
Como alternativa ao uso das mensagens EM_EXGETSEL e EM_EXSETSEL, você pode recuperar e definir a seleção atual usando o EM_GETSEL e EM_SETSEL editar mensagens de controle. A mensagem EM_GETSEL empacota dois índices de caracteres de 16 bits em seu valor de retorno de 32 bits e, portanto, funciona apenas para seleções que se enquadram inteiramente nos primeiros 64K. No entanto, um controle de edição avançado nunca conterá mais de 32 mil caracteres de texto, a menos que você estenda esse limite usando a mensagem EM_LIMITTEXT ou EM_EXLIMITTEXT. Para seleções que se estendem além dos primeiros 64 KB de texto, a mensagem EM_GETSEL retorna –1. Nesse caso, você ainda pode usar os valores retornados em wParam e lParam para encontrar os caracteres inicial e final da seleção.
Tópicos relacionados