TN022: Ejecución de comandos estándar

Esta nota describe las implementaciones de comando estándar proporcionadas por MFC 2.0. Por favor, asegúrese de leer 21 de nota técnica primero ya describe los mecanismos utilizados para implementar muchos de los comandos estándar.

Esta descripción supone conocimiento de las arquitecturas MFC, APIs y práctica de programación común. Tanto documentado como indocumentado "aplicación sólo" APIs se describen. Esto no es un lugar para empezar a aprender sobre las funciones de o cómo se programa en MFC. Por favor consulte la Guía del programador de Visual C++ para obtener información más general y detalles de API documentadas.

El problema

MFC define muchos identificadores de comandos estándar en el archivo de encabezado AFXRES.H. marco soporte para estos comandos varía. Comprender dónde y cómo las clases de marco manejan la voluntad de estos comandos no sólo mostrarle cómo funciona internamente el marco, pero proporcionará información útil sobre cómo personalizar las implementaciones estándar y ojalá te enseñan algunas técnicas para implementar sus propios controladores de comando.

Contenido de esta nota técnica

Cada identificador de comando se describe en dos secciones:

Mayoría de las implementaciones de comando por defecto es mecánicamente en el mapa de mensajes de clase base del marco. Hay algunas implementaciones de comando que requieren cableado explícito en la clase derivada. Éstas se describen en "Nota". Si elige las opciones correctas en AppWizard, estos controladores predeterminados se conectará para usted en la aplicación esqueleto generada.

Convención de nomenclatura

Los comandos estándar siga una Convención de nomenclatura sencilla que le recomendamos que utilice si es posible. Comandos más comunes se encuentran en lugares estándar en la barra de menús de una aplicación. El nombre simbólico del comando comienza con "ID_" seguido del nombre de menú emergente estándar, seguido por el nombre de elemento de menú. El nombre simbólico es en mayúsculas con saltos de palabra de subrayado. Para los comandos que no tienen nombres de elementos de menú estándar, se define un nombre de comando lógico comenzando con "ID_" (por ejemplo, ID_NEXT_PANE).

Usamos el prefijo "ID_" para indicar los comandos que están diseñados para obligarse a elementos de menú, botones de barra de herramientas u otros objetos de interfaz de usuario de comando. Manejo de comandos "ID_" de controladores de comando deben utilizar los mecanismos de ON_COMMAND y ON_UPDATE_COMMAND_UI de la arquitectura de comando MFC.

Recomendamos que utilizar el prefijo "IDM_" estándar para elementos de menú que no siga la arquitectura de comando y necesita código específico del menú para activar y desactivarles. Por supuesto el número de comandos específicos de menú debe ser pequeño ya que después de la arquitectura de comando MFC no sólo hacen controladores de comandos más poderosos (ya que se trabajará con las barras de herramientas) pero hacen el código de controlador de comandos reutilizables.

Rangos de ID

Consulte 20 de nota técnica para obtener más detalles sobre el uso de rangos de ID en MFC.

Comandos estándar de MFC caen en el rango 0xE000 a 0xEFFF. Por favor, no se basan en los valores específicos de estos IDs pues están sujetos a cambios en futuras versiones de la biblioteca.

Su aplicación debe definir sus comandos en el rango 0 x 8000 a 0xDFFF.

Identificadores de comandos estándar

Para cada identificador de comando, existe una cadena de mensaje de línea mensaje estándar que puede encontrarse en las instrucciones del archivo.RC. El ID de cadena para ese mensaje de menú debe ser el mismo que para el identificador de comando.

Sólo actualizar controladores de comando

Hay varios identificadores de comandos estándar que se utilizan como indicadores en barras de Estado. Estos utilizan el mismo mecanismo de control de interfaz de usuario de comando de actualización para mostrar su estado visual actual durante el tiempo de inactividad de aplicación. Ya que no pueden ser seleccionadas por el usuario (es decir, empujar un panel de barra de Estado), entonces no tiene sentido tener un controlador de ON_COMMAND para estos identificadores de comandos.

Tres de estos se implementan en CFrameWnd::OnUpdateKeyIndicator, un ayudante de aplicación que utiliza el identificador de comando para asignar a la tecla Virtual adecuada. Una implementación común activa o desactiva (paneles de estado desactivado no = ningún texto) el objeto CCmdUI dependiendo de si la tecla Virtual adecuada está actualmente bloqueada.

No se recomienda la personalización de este controlador de comandos.

Actualmente no hay ninguna implementación estándar para estos indicadores.

Si desea aplicar estos indicadores, recomendamos que utilice estos identificadores de indicador y mantener el orden de los indicadores en la barra de Estado (es decir, en este orden: EXT, CAP, NUM, SCRL, sob, REC).

&Notas técnicas por número |nbsp; Notas técnicas por categoría

Index