Menús y recursos (OLE)
En este grupo de artículos se explica el uso de menús y recursos en aplicaciones de documentos OLE MFC.
La edición visual OLE coloca requisitos adicionales en el menú y otros recursos proporcionados por las aplicaciones de documentos OLE porque hay varios modos en los que se pueden iniciar y usar aplicaciones de contenedor y servidor (componente). Por ejemplo, una aplicación de servidor completo se puede ejecutar en cualquiera de estos tres modos:
Independiente.
Local, para editar un elemento dentro del contexto de un contenedor.
Abierto, para editar un elemento fuera del contexto de su contenedor, a menudo en una ventana independiente.
Esto requiere tres diseños de menú independientes, uno para cada modo posible de la aplicación. Las tablas de aceleradores también son necesarias para cada nuevo modo. Una aplicación contenedora puede o no admitir la activación local; si es así, necesita una nueva estructura de menús y tablas de aceleradores asociadas.
La activación en contexto requiere que las aplicaciones de contenedor y servidor negocien el espacio de menú, la barra de herramientas y la barra de estado. Todos los recursos deben diseñarse pensando en esto. El artículo Menús y recursos: Combinación de menús trata detalladamente este tema.
Debido a estos problemas, las aplicaciones de documentos OLE creadas con el Asistente para aplicaciones pueden tener hasta cuatro menús independientes y recursos de tabla de aceleradores. Estos se usan por los siguientes motivos:
Nombre del recurso | Usar |
---|---|
IDR_MAINFRAME | Se usa en una aplicación MDI si no hay ningún archivo abierto o en una aplicación SDI independientemente de los archivos abiertos. Este es el menú estándar que se usa en aplicaciones que no son OLE. |
IDR_<project>TYPE | Se usa en una aplicación MDI si los archivos están abiertos. Se usa cuando una aplicación se ejecuta de forma independiente. Este es el menú estándar que se usa en aplicaciones que no son OLE. |
IDR_<project>TYPE_SRVR_IP | Lo usa el servidor o contenedor cuando un objeto está abierto en contexto. |
IDR_<project>TYPE_SRVR_EMB | Lo usa una aplicación de servidor si se abre un objeto sin usar la activación en contexto. |
Cada uno de estos nombres de recursos representa un menú y, normalmente, una tabla de aceleradores. Se debe usar un esquema similar en aplicaciones MFC que no se crean con el Asistente para aplicaciones.
En los artículos siguientes se tratan temas relacionados con contenedores, servidores y la combinación de menús necesaria para implementar la activación en contexto: