Cómo: Crear el control de usuario y hospedarlo en una vista MDI

Actualización: noviembre 2007

Los siguientes procedimientos muestran cómo crear un control de usuario de .NET Frameworks, editarlo en una biblioteca de clases de control (específicamente un proyecto de la Biblioteca de controles de Windows) y, a continuación, compilar el proyecto en un ensamblado. A continuación, utilizará el control de una aplicación MFC que utiliza clases derivadas de CView Class y CWinFormsView Class.

Para obtener información sobre cómo crear un control de usuario de formularios Windows Forms y generar una biblioteca de clases de control, vea Cómo: Crear controles de usuario.

Nota:

En algunos casos, los controles WinForms, por ejemplo un control Grid de un tercero, puede que no se comporten de forma fiable si se alojan en una aplicación MFC. La solución recomendada es colocar un control de usuario de formularios Windows Forms en la aplicación MFC y el control Grid de un tercero dentro del control de usuario.

Este procedimiento supone que se creó un proyecto de la Biblioteca de controles de formularios Windows Forms denominado WindowsControlLibrary1, según el procedimiento de Cómo: Crear el control de usuario y hospedarlo en un cuadro de diálogo.

Para crear la aplicación host MFC

  1. Cree un nuevo proyecto de aplicación MFC.

    En el menú Archivo, seleccione New y ,a continuación, haga clic en Proyecto. En la carpeta Visual C++, seleccione Aplicación MFC.

    En el cuadro Nombre, escriba MFC02 y cambie el valor Solución a Agregar a solución.Haga clic en Aceptar.

    En el Asistente para aplicaciones MFC, acepte todos los valores predeterminados y, a continuación, haga clic en Finalizar. Esto crea una aplicación MFC con una interfaz de múltiples documentos.

  2. Configure el proyecto.

    En el Explorador de soluciones, haga clic con el botón secundario en el nodo del proyecto MFC02 y, a continuación, seleccione Propiedades en el menú contextual. Aparecerá el cuadro de diálogo Páginas de propiedades.

    En el cuadro de diálogo Páginas de propiedades, en el control de árbol Propiedades de configuración, seleccione Generales, a continuación, en la sección Valores predeterminados del proyecto, establezca Compatibilidad con Common Language Runtime en Compatible con Common Language Runtime (/clr). Haga clic en Aceptar.

  3. Agregue una referencia al control .NET.

    En el Explorador de soluciones, haga clic con el botón secundario en el nodo del proyecto MFC02 y, a continuación, seleccione Referencias. En la Página de propiedades, haga clic en Agregar nueva referencia, seleccione WindowsControlLibrary1 (bajo la ficha Proyectos) y haga clic en Aceptar. Así se agregará una referencia en forma de una opción del compilador /FU para que el programa compile; también copiará WindowsControlLibrary1.dll en el directorio del proyecto MFC02 para que se ejecute el programa.

  4. En stdafx.h, encuentre esta línea:

    #endif // _AFX_NO_AFXCMN_SUPPORT 
    

    Agregue estas líneas sobre ella:

    #include <afxwinforms.h>   // MFC Windows Forms support
    
  5. Modifique la clase de vista para que herede de CWinFormsView.

    En MFC02View.h, reemplace CView con CWinFormsView para que el código aparezca como sigue:

    class CMFC02View : public CWinFormsView
    {
    };
    

    Si desea agregar vistas adicionales a su aplicación MDI, deberá llamar a CWinApp::AddDocTemplate para cada vista que cree.

  6. Modifique el archivo MFC02View.cpp para cambiar CView a CWinFormsView en la macro IMPLEMENT_DYNCREATE y en el mapa de mensajes, y reemplace el constructor vacío existente por el constructor que se muestra a continuación:

    IMPLEMENT_DYNCREATE(CMFC02View, CWinFormsView)
    
    CMFC02View::CMFC02View(): CWinFormsView(WindowsControlLibrary1::UserControl1::typeid) 
    {
    }
    BEGIN_MESSAGE_MAP(CMFC02View, CWinFormsView)
    //leave existing body as is
    END_MESSAGE_MAP()
    
  7. Genere y ejecute el proyecto.

    En el Explorador de soluciones, haga clic con el botón secundario en MFC02 y seleccione Establecer como proyecto de inicio.

    En el menú Generar, haga clic en Generar solución.

    En el menú Depurar, haga clic en Iniciar sin depurar.

Vea también

Otros recursos

Hospedar un control de usuario de formularios Windows Forms como vista MFC