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.
Un control ActiveX desencadena eventos para comunicarse entre sí y su contenedor de control. Un contenedor también puede comunicarse con un control mediante métodos y propiedades. Los métodos también se denominan funciones.
Los métodos y propiedades proporcionan una interfaz exportada para su uso por otras aplicaciones, como clientes de Automation y contenedores de controles ActiveX. Para obtener más información sobre las propiedades del control ActiveX, consulte el artículo Controles ActiveX de MFC: Propiedades.
Los métodos son similares en uso y propósito para las funciones miembro de una clase de C++. Hay dos tipos de métodos que el control puede implementar: stock y personalizado. De forma similar a los eventos de stock, los métodos de stock son los métodos para los que COleControl proporciona una implementación. Para obtener más información sobre los métodos de stock, consulte el artículo Controles ActiveX de MFC: Agregar métodos de stock. Los métodos personalizados, definidos por el desarrollador, permiten una personalización adicional del control. Para obtener más información, consulte el artículo Controles ActiveX de MFC: Agregar métodos personalizados.
La Biblioteca Microsoft Foundation Class (MFC) implementa un mecanismo que permite a su control admitir métodos stock y personalizados. La primera parte es la clase COleControl. Las funciones miembro de CWnd derivan de COleControl y admiten métodos estándar comunes a todos los controles ActiveX. La segunda parte de este mecanismo es el mapa de distribución. Un mapa de distribución es similar a un mapa de mensajes; sin embargo, en lugar de asignar una función a un identificador de mensaje de Windows, un mapa de distribución asigna funciones miembro virtuales a IDispatch IDS.
Para que un control admita correctamente varios métodos, su clase debe declarar un mapa de despacho. Esto se logra mediante la siguiente línea de código ubicada en el archivo de encabezado de clase de control (.H):
DECLARE_DISPATCH_MAP()
El propósito principal del mapa de distribución es establecer la relación entre los nombres de método utilizados por un llamador externo (como el contenedor) y las funciones miembro de la clase del control que implementan los métodos. Una vez declarada la asignación de distribución, debe definirse en el archivo de implementación del control (.CPP). Las siguientes líneas de código definen el mapa de distribución:
BEGIN_DISPATCH_MAP(CMyAxUICtrl, COleControl)
END_DISPATCH_MAP()
Si usó el Asistente para controles ActiveX de MFC para crear el proyecto, estas líneas se agregaron automáticamente. Si no se usó el Asistente para controles ActiveX de MFC, debe agregar estas líneas manualmente.
En los artículos siguientes se describen los métodos en detalle: