Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
CWinFormsView enruta comandos y actualiza mensajes de interfaz de usuario de comandos al control del usuario para que pueda controlar los comandos MFC (por ejemplo, elementos de menú de marcos y botones de barra de herramientas).
El control del usuario utiliza ICommandTarget::Initialize para almacenar una referencia al objeto de origen de comando en m_CmdSrc, como se muestra en el ejemplo siguiente.Para utilizar ICommandTarget es necesario agregar una referencia a mfcmifc80.dll.
CWinFormsView controla algunas de las notificaciones de vistas de MFC habituales reenviándolas al control del usuario administrado.Estas notificaciones incluyen OnInitialUpdate, OnUpdate y los métodos OnActivateView de Interfaz de IView.
En este tema se supone que el usuario ha completado Cómo: Crear el control de usuario y hospedarlo en un cuadro de diálogo y Cómo: Crear el control de usuario y hospedarlo en una vista MDI.
Para crear la aplicación host MFC
Abra la Biblioteca de controles de formularios Windows Forms creada en Cómo: Crear el control de usuario y hospedarlo en un cuadro de diálogo.
Agregue una referencia a mfcmifc80.dll; para ello, puede hacer clic con el botón secundario del mouse en el nodo de proyecto en el Explorador de soluciones, seleccionar Agregar referencia y, a continuación, desplazarse a Microsoft Visual Studio 10.0\VC\atlmfc\lib.
Abra UserControl1.Designer.cs y agregue la instrucción using siguiente:
using Microsoft.VisualC.MFC;Además, en UserControl1.Designer.cs, cambie esta línea:
partial class UserControl1a:
partial class UserControl1 : System.Windows.Forms.UserControl, ICommandTargetAgregue ésta como primera línea de la definición de clase para UserControl1:
private ICommandSource m_CmdSrc;Agregue las definiciones de método siguientes a UserControl1 (crearemos el identificador del control MFC en el paso siguiente):
public void Initialize (ICommandSource cmdSrc) { m_CmdSrc = cmdSrc; // need ID of control in MFC dialog and callback function m_CmdSrc.AddCommandHandler(32771, new CommandHandler (singleMenuHandler)); } private void singleMenuHandler (uint cmdUI) { // User command handler code System.Windows.Forms.MessageBox.Show("Custom menu option was clicked."); }Abra la aplicación MFC creada en Cómo: Crear el control de usuario y hospedarlo en una vista MDI.
Agregue una opción de menú que llamará a singleMenuHandler.
Vaya a Vista de recursos (CTRL+MAYÚS+E), expanda la carpeta Menú y, a continuación, haga doble clic en IDR_MFC02TYPE.Se muestra el editor de menús.
Agregue una opción de menú al final del menú Ver.Tome nota del identificador de la opción de menú en la ventana Propiedades.Guarde el archivo.
En el Explorador de soluciones, abra el archivo Resource.h, copie el valor del identificador para la opción de menú que acaba de agregar y pegue ese valor como primer parámetro de la llamada a m_CmdSrc.AddCommandHandler en el método Initialize del proyecto de C# (reemplazando 32771 si es necesario).
Compile y ejecute el proyecto.
En el menú Compilar, haga clic en Compilar solución.
En el menú Depurar, haga clic en Iniciar sin depurar.
Seleccione la opción de menú que ha agregado.Observe que se llama al método en .dll.
Vea también
Referencia
Otros recursos
Hospedar un control de usuario de Windows Forms como vista de MFC