Contenedores: Implementar un contenedor
En este artículo se resume el procedimiento para implementar un contenedor y le apunta a otros casos que proporcionan explicaciones más detalladas sobre implementar contenedores. También enumera algunas características opcionales OLE que quizá desee implementar y casos que describen estas características.
Para preparar la clase CWinApp-derivada
Inicialice las bibliotecas VIEJAS llamando a AfxOleInit en la función miembro de InitInstance .
Llame a CDocTemplate::SetContainerInfo en InitInstance para asignar el menú y los recursos de aceleradores utilizaban cuando un elemento incrustado es en contexto elevado. Para obtener más información sobre este tema, vea Activación.
Estas características se proporcionan automáticamente cuando se utiliza el Asistente para aplicaciones MFC para crear una aplicación contenedora. Vea Crear un programa MFC EXE.
Para preparar la clase de vista
Supervise los elementos seleccionados que mantiene un puntero, o la lista de punteros si admite la selección múltiple, elementos seleccionados. La función de OnDraw debe dibujar todos los elementos de OLE.
Reemplace IsSelected para comprobar si el último elemento cuando está seleccionado.
Implemente un controlador de mensajes OnInsertObject para mostrar el cuadro de diálogo de Insertar objeto .
Implemente un controlador de mensajes OnSetFocus para transferir el foco de la vista en un elemento insertado OLE activo en contexto.
Implemente un controlador de mensajes OnSize para informar a un elemento insertado OLE que necesita cambiar su rectángulo para reflejar el cambio de tamaño de la vista que contiene.
Dado que la implementación de estas características varía considerablemente de una aplicación a otra, el asistente para aplicaciones sólo proporciona una implementación básica. Tendrá que probablemente personalizar estas funciones para obtener la aplicación para funcionar correctamente. Para obtener un ejemplo, vea el ejemplo de CONTENEDOR .
Administrar elementos incrustados y vinculados
Derive una clase de COleClientItem. Los objetos de esta clase representan los elementos que se han insertado en o se han vinculado al documento OLE.
Reemplazo OnChange, OnChangeItemPosition, y OnGetItemPosition. Estas funciones controlan el tamaño, posición, y modificando elementos insertados y vinculados.
El asistente para aplicaciones derivará la clase para usted, pero probablemente necesitará invalidar OnChange y otro funciona mencionado con él en el paso 2 del procedimiento anterior. Las implementaciones necesitan esquemáticas personalizar para la mayoría de las aplicaciones, ya que estas funciones se implementan de manera diferente de una aplicación a otra. Para obtener ejemplos de esto, vea los ejemplos DRAWCLI y CONTENEDORMFC.
Debe agregar varios elementos a la estructura de menú de la aplicación contenedora para admitir OLE. Para obtener más información al respecto, vea Menús y recursos: Adiciones de contenedor.
También puede admitir algunas de las siguientes características en la aplicación contenedora:
Activación de contexto al editar un elemento incrustado.
Para obtener más información, vea Activación.
Creación de elementos de OLE arrastrando y colocando una selección de una aplicación de servidor.
Para obtener más información, vea Arrastrar y colocar (OLE).
Vínculos a los objetos incrustados o al contenedor de combinación y a las aplicaciones de servidor.
Para obtener más información, vea Contenedores: Características avanzadas.