Compartir a través de


TN020: Convenciones de nomenclatura y numeración de identificadores

En esta nota se describen las convenciones de nomenclatura y numeración de identificadores que MFC 2.0 usa para los recursos, comandos, cadenas, controles y ventanas secundarias.

Las convenciones de nomenclatura y numeración de identificadores de MFC están diseñadas para cumplir los siguientes requisitos:

  • Proporcione un estándar coherente de nomenclatura de identificadores que se usa en la biblioteca MFC y las aplicaciones MFC compatibles con el editor de recursos de Visual C++. Esto facilita al programador interpretar el tipo y el origen de un recurso a partir de su identificador.

  • Resalte la fuerte relación de 1 a 1 entre determinados tipos de identificadores.

  • Se ajusta a los estándares ya usados para asignar nombres a identificadores en Windows.

  • Particione el espacio de numeración de identificadores. Los números de identificador se pueden asignar mediante los recursos editados por el programador, MFC, Windows y Visual C++. La creación de particiones adecuada ayudará a evitar la duplicación de números de identificador.

Convención de nomenclatura de prefijos de identificador

Se pueden producir varios tipos de identificadores en una aplicación. La convención de nomenclatura de identificadores de MFC define distintos prefijos para distintos tipos de recursos.

MFC usa el prefijo "IDR_" para indicar un identificador de recurso que se aplica a varios tipos de recursos. Por ejemplo, para una ventana de marco determinada, MFC usa el mismo prefijo "IDR_" para indicar un recurso de menú, acelerador, cadena e icono. En la tabla siguiente se muestran los distintos prefijos y su uso:

Prefijo Uso
IDR_ Para varios tipos de recursos (se usan principalmente para menús, aceleradores y cintas de opciones).
IDD_ Para los recursos de plantilla de diálogo (por ejemplo, IDD_DIALOG1).
IDC_ Para los recursos del cursor.
IDI_ Para los recursos de icono.
BID_ Para los recursos de mapa de bits.
IDENTIFICADORES_ Para los recursos de cadena.

Dentro de un recurso DIALOG, MFC sigue estas convenciones:

Prefijo o etiqueta Uso
IDOK, IDCANCEL Para identificadores de botón de inserción estándar.
IDC_ Para otros controles de diálogo.

El prefijo "IDC_" también se usa para cursores. Este conflicto de nomenclatura no suele ser un problema porque una aplicación típica tendrá pocos cursores y muchos controles de diálogo.

Dentro de un recurso de menú, MFC sigue estas convenciones:

Prefijo Uso
IDM_ Para los elementos de menú que no usan la arquitectura de comandos de MFC.
IDENTIFICACIÓN_ Para los comandos de menú que usan la arquitectura de comandos de MFC.

Los comandos que siguen la arquitectura de comandos de MFC deben tener un controlador de comandos ON_COMMAND y pueden tener un controlador de ON_UPDATE_COMMAND_UI. Si estos controladores de comandos siguen la arquitectura de comandos de MFC, funcionarán correctamente si están enlazados a un comando de menú, un botón de barra de herramientas o un botón de barra de diálogo. El mismo prefijo "ID_" también se usa para una cadena de solicitud de menú que se muestra en la barra de mensajes del programa. La mayoría de los elementos de menú de la aplicación deben seguir las convenciones de comando de MFC. Todos los identificadores de comando estándar (por ejemplo, ID_FILE_NEW) siguen esta convención.

MFC también usa "IDP_" como una forma especializada de cadenas (en lugar de "IDS_"). Las cadenas con el prefijo "IDP_" son mensajes, es decir, cadenas usadas en los cuadros de mensaje. Las cadenas "IDP_" pueden contener "%1" y "%2" como marcadores de posición de cadenas determinadas por el programa. Las cadenas "IDP_" normalmente tienen temas de ayuda asociados a ellas y las cadenas "IDS_" no. Las cadenas "IDP_" siempre se localizan y es posible que las cadenas "IDS_" no se localicen.

La biblioteca MFC también usa el prefijo "IDW_" como una forma especializada de identificadores de control (en lugar de "IDC_"). Estos identificadores se asignan a ventanas secundarias, como vistas y divisores por las clases de marco. Los identificadores de implementación de MFC tienen el prefijo "AFX_".

Convención de ID-Numbering

En la tabla siguiente se enumeran los intervalos válidos para los identificadores de los tipos específicos. Algunos de los límites son límites de implementación técnicos y otros son convenciones diseñadas para evitar que los identificadores entren en colisión con identificadores predefinidos de Windows o implementaciones predeterminadas de MFC.

Se recomienda encarecidamente definir todos los identificadores dentro de los intervalos recomendados. El límite inferior de estos intervalos es 1 porque no se usa 0. Se recomienda usar la convención común y usar 100 o 101 como el primer identificador.

Prefijo Tipo de recurso Intervalo válido
IDR_ varios De 1 a 0x6FFF
IDD_ plantillas de cuadro de diálogo De 1 a 0x6FFF
IDC_,IDI_,IDB_ cursores, iconos, mapas de bits De 1 a 0x6FFF
IDS_, IDP_ cadenas generales De 1 a 0x7FFF
IDENTIFICACIÓN_ Comandos 0x8000 a través de 0xDFFF
IDC_ controles De 8 a 0xDFFF

Motivos para estos límites de intervalos:

  • Por convención, no se usa el valor de identificador de 0.

  • Las limitaciones de implementación de Windows restringen los identificadores de recursos verdaderos para que sean menores o iguales que 0x7FFF.

  • El marco interno de MFC reserva estos intervalos:

    • 0x7000 a través de 0x7FFF (consulte afxres.h)

    • 0xE000 a través de 0xEFFF (consulte afxres.h)

    • De 16000 a 18000 (véase afxribbonres.h)

    Estos intervalos pueden cambiar en futuras implementaciones de MFC.

  • Varios comandos del sistema Windows usan el intervalo de 0xF000 a través de 0xFFFF.

  • Los identificadores de control de 1 a 7 están reservados para controles estándar como IDOK y IDCANCEL.

  • El intervalo de 0x8000 a través de 0xFFFF para cadenas está reservado para los mensajes de menú para los comandos.

Consulte también

Notas técnicas por número
Notas Técnicas por Categoría