Compartir a través de


Cómo interactuar con la selección actual

El usuario puede seleccionar texto en un control de edición enriquecido mediante el mouse o el teclado. La selección actual es el intervalo de caracteres seleccionados o la posición del punto de inserción si no se selecciona ningún carácter. Una aplicación puede obtener información sobre la selección actual, establecerla, determinar cuándo cambia y mostrar u ocultar el resaltado de selección.

Lo que necesita saber

Tecnologías

Requisitos previos

  • C/C++
  • Programación de la interfaz de usuario de Windows

Instrucciones

Interacción con la selección actual

Para determinar la selección actual en un control de edición enriquecido, use el mensaje EM_EXGETSEL . Para establecer la selección actual, use el mensaje EM_EXSETSEL . La estructura CHARRANGE se usa con los mensajes y especifica un intervalo de caracteres. Para recuperar información sobre el contenido de la selección actual, puede usar el mensaje EM_SELECTIONTYPE .

Una aplicación puede detectar cuándo cambia la selección actual procesando el código de notificación EN_SELCHANGE . El código de notificación especifica una estructura SELCHANGE que contiene información sobre la nueva selección. Un control de edición enriquecido envía este código de notificación solo si lo habilita mediante el mensaje EM_SETEVENTMASK .

De forma predeterminada, los controles control Rich Edit muestran y ocultan el resaltado de la selección cuando adquiere o pierde interés. Puede mostrar u ocultar el resaltado de selección en cualquier momento mediante el mensaje EM_HIDESELECTION . Por ejemplo, una aplicación podría proporcionar un cuadro de diálogo Buscar para buscar texto en un control Rich Edit. La aplicación puede seleccionar texto coincidente sin cerrar el cuadro de diálogo, en cuyo caso debe usar el mensaje EM_HIDESELECTION para resaltar la selección.

Al igual que con los controles de edición, puede especificar el estilo de ventana de ES_NOHIDESEL para evitar que un control de edición enriquecido oculte el resaltado de selección cuando pierda el foco.

Como alternativa al uso de los mensajes de EM_EXGETSEL y EM_EXSETSEL , puede recuperar y establecer la selección actual mediante el EM_GETSEL y EM_SETSEL editar mensajes de control. El EM_GETSEL mensaje empaqueta dos índices de caracteres de 16 bits en su valor devuelto de 32 bits y, por lo tanto, solo funciona para las selecciones que se encuentran completamente dentro de los primeros 64 K. Sin embargo, un control de edición enriquecido nunca contendrá más de 32 000 caracteres de texto, a menos que extienda este límite mediante el EM_LIMITTEXT o EM_EXLIMITTEXT mensaje. Para las selecciones que se extienden más allá de los primeros 64 KB de texto, el mensaje de EM_GETSEL devuelve –1. En tal caso, puede seguir usando los valores que se devuelven en wParam y lParam para buscar los caracteres inicial y final de la selección.

Usar controles de edición enriquecida

Demostración de controles comunes de Windows (CppWindowsCommonControls)