Compartir a través de


Menús y recursos: Combinación de menús

En este artículo se detalla qué pasos se han de seguir para que las aplicaciones de documentos OLE controlen correctamente la edición visual y la activación en contexto. En la activación local se presentan problemas para las aplicaciones de contenedor y servidor, (componente). El usuario permanece en la misma ventana de marco, dentro del contexto del documento contenedor, pero en realidad ejecuta otra aplicación, (el servidor). Para ello es necesario coordinar los recursos de las aplicaciones del contenedor y servidor.

En este artículo se tratan los siguientes temas:

Diseños de menú

En primer lugar hay que coordinar los diseños de menú. Las aplicaciones contenedora deben crear un nuevo menú para usarse únicamente si los elementos incrustados están activados en su lugar. El menú debe contener como mínimo los siguientes elementos en el orden indicado:

  1. Menú archivo idéntico al usado con los archivos abiertos. (No suelen colocarse otros elementos de menú antes del siguiente elemento).

  2. Dos separadores consecutivos.

  3. Menú de ventana idéntico al usado con los archivos abiertos, (solo si la aplicación contenedora está en una aplicación MDI). Existen otros menús en algunas aplicaciones, como un Menú de opciones, que son de este grupo, que permanece en el menú cuando se activa en su sitio un elemento insertado.

    Nota:

    Otros menús pueden afectar a la vista del documento contenedor, como Zoom. Estos menús de contenedor aparecen entre los dos separadores del recurso de menú.

Las aplicaciones de servidor (componente) también deben crear un nuevo menú específico para la activación local. Debe ser como el menú que se usa con los archivos abiertos, pero sin elementos de menú, como Archivo y Ventana que manipulan el documento de servidor en lugar de los datos. Normalmente, este menú consta de los siguientes componentes:

  1. Menú Edición idéntico al usado con los archivos abiertos.

  2. Separador.

  3. Menús Edición de objetos, como el menú Lápiz de la aplicación de muestra Scribble.

  4. Separador.

  5. Menú Ayuda.

Consulte, a modo de ejemplo, el diseño de algunos menús en contexto para un contenedor y un servidor. Se han borrado los detalles de cada elemento del menú para que el ejemplo resulte más claro. El menú local del contenedor contiene las siguientes entradas:

IDR_CONTAINERTYPE_CNTR_IP MENU PRELOAD DISCARDABLE
BEGIN
    POPUP "&File C1"
    MENUITEM SEPARATOR
    POPUP "&Zoom C2"
    MENUITEM SEPARATOR
    POPUP "&Options C3"
    POPUP "&Window C3"
END

Los separadores consecutivos indican dónde debe ir la primera parte del menú del servidor. Preste atención ahora al menú local del servidor:

IDR_SERVERTYPE_SRVR_IP MENU PRELOAD DISCARDABLE
BEGIN
    POPUP "&Edit S1"
    MENUITEM SEPARATOR
    POPUP "&Format S2"
    MENUITEM SEPARATOR
    POPUP "&Help S3"
END

En este caso los separadores indican dónde debe ir el segundo grupo de elementos de menú de contenedor. La estructura de menús resultante al activarse un objeto de este servidor en contexto dentro de este contenedor presenta el siguiente aspecto:

BEGIN
    POPUP "&File C1"
    POPUP "&Edit S1"
    POPUP "&Zoom C2"
    POPUP "&Format S2"
    POPUP "&Options C3
    POPUP "&Window C3"
    POPUP "&Help S3"
END

Como puede ver, los separadores se han reemplazado con los diferentes grupos del menú de cada aplicación.

La aplicación de servidor también debe proporcionar tablas aceleradoras asociadas al menú local. El contenedor las incorporará a sus tablas aceleradoras.

Cuando se activa un elemento insertado en contexto, el marco carga el menú local. Entonces solicita a la aplicación de servidor su menú para la activación local e inserta dónde están los separadores. Los menús se combinan de este modo. Se obtienen menús de contenedor para que funcionen en la ubicación del archivo y la ventana, y se proporcionan menús del servidor para que funcionen en el elemento.

Barras de herramientas y barras de estado

Las aplicaciones de servidor deben crear una nueva barra de herramientas y almacenar el mapa de bits en un archivo por separado. Las aplicaciones que genera el asistente para aplicaciones almacenan este mapa de bits en un archivo llamado ITOOLBAR.BMP. La nueva barra de herramientas sustituye a la barra de herramientas de la aplicación contenedora al activarse el elemento del servidor y debe contener los mismos elementos que la barra de herramientas habitual, pero sin los iconos que representan elementos en los menús Archivo y Ventana.

Esta barra de herramientas se carga en la clase derivada de COleIPFrameWnd que ha creado el asistente para aplicaciones. La aplicación contenedora controla la barra de estado. En Servers: Implementing Server Documents, (Servidores: Implementación de un servidor), puede encontrar más información sobre la implementación de ventanas de fotogramas locales.

Consulte también

Menús y recursos (OLE)
Activación
Servidores
Contenedores