Red de conocimiento informático - Problemas con los teléfonos móviles - Preparando controles ActiveX con VC++

Preparando controles ActiveX con VC++

La tecnología ActiveX se implementa generando archivos "*.ocx". Primero, comprendamos el archivo OCX. La Enciclopedia Baidu explica OCX de esta manera: “.ocx es la extensión del control ocx y OCX es el componente de extensión de categoría de objeto. Si ha utilizado herramientas de programación visual como Visual Basic o Delphi. Debe estar familiarizado con el concepto de controles, esos pequeños botones en la barra de herramientas, como EditBox, Grid, ImageBox, Timer, etc. Cada control tiene sus propios eventos, métodos y propiedades. La programación usando controles es muy importante. puede establecer algunas propiedades durante la fase de diseño del programa, como tamaño, posición, título, etc., durante la fase de ejecución del programa, puede cambiar estas propiedades y también puede llamar a diferentes métodos para diferentes eventos. control del control. El control es como una pieza de bloques de construcción. Todo lo que el programa tiene que hacer es juntar estos bloques de construcción. La mayor ventaja del control es que se puede reutilizar e incluso se puede usar entre diferentes lenguajes de programación. Por ejemplo, puede utilizar VB. Controles integrados desarrollados con VC "

La última oración es más importante, es decir, los controles OCX desarrollados con VC se pueden llamar en otros lenguajes, lo que implementa efectivamente componentes funcionales. Se puede usar en un buen ciclo y también se puede llamar en varios idiomas (por ejemplo, puede usar C# para llamar al control OCX desarrollado en C++).

A continuación se presentará paso a paso cómo utilizar VC++ para generar el archivo "*.ocx" que desea.

1. Cree el archivo ocx más simple y depurelo

1.1 Cree el archivo ocx más simple

VC-New Project-MFC ActiveX WinZard

Haga clic en Aceptar hasta que haga clic en Listo. Finalmente, VC++ generará automáticamente algunos archivos, que constituyen la plantilla básica de ActiveX. La estructura principal del archivo es la siguiente:

Compílelo directamente y luego se generará un archivo llamado "ocxDemo.ocx". generado en el directorio Debug. "archivo de registro de control, y luego use el comando "regsvr32" para registrar el control en esta máquina. Luego puede usar este lenguaje o programación en varios lenguajes para hacer referencia a este control para implementar las funciones correspondientes (será discutido más adelante).

Método de depuración 1.2 ocx:

VC++ viene con una herramienta de control de depuración "ActiveX Control Test Container", que se puede abrir de tres formas:

1. Haga clic en el botón "Depurar", aparecerá el siguiente cuadro de diálogo:

Luego busque "C:Archivos de programaMicrosoft Visual StudioCommonToolsTSTCON32.EXE"

"Inicio" del sistema ->"Programa. "-""Microsoft Visual C++ 6.0"-""Herramientas de Microsoft Visual C++ 6.0"-""Contenedor de prueba de control activo"

3. "Herramientas" en el entorno de desarrollo de VC++-""Contenedor de prueba de control ActiveX ”

A través de cualquiera de los métodos anteriores, puede abrir el siguiente programa:

Haga clic con el botón derecho en el área en blanco, inserte el control y luego aparecerá el siguiente cuadro de diálogo. :

Seleccione el control especificado y haga clic en Aceptar. El control se cargará en esta herramienta. Luego podrá usar esta herramienta para ver las respuestas de eventos relacionados de este control, etc.

2. Funciones personalizadas basadas en plantillas generadas por VC++

Todas las funciones personalizadas provienen básicamente del cuadro de diálogo del asistente de clases "MFC ClassWizard".

("Atajo Ctrl+W" o "Ver"-"Asistente para crear clases")

Agregue métodos y propiedades al control en la pestaña "Automatización".

Añadir eventos para el control en la pestaña "Eventos ActiveX".

2.1 Agregar propiedades de control

Cambie a la pestaña "Automatización" y haga clic en "Agregar propiedad" a la derecha, aparecerá un cuadro de diálogo:

Externo nombre: Nombre externo. Se refiere al nombre de la propiedad que ven los programas externos cuando se usa este control. Solo se usa cuando se hacen referencias externas.

Tipo: tipo de atributo. Además de los tipos de datos básicos, como los números enteros, existen muchos tipos de datos avanzados complejos.

Nombre de la variable: nombre de la variable. El nombre de la variable de esta propiedad en el archivo fuente de control se utiliza al escribir el código fuente del control.

Función de notificación: función de recordatorio. Cuando se cambia esta propiedad, se activará esta función de recordatorio.

Implementación: Método de implementación. Se refiere a los tres tipos de atributos: tipo inherente, tipo de variable miembro y tipo de método Get/Set. El tipo inherente se refiere a los atributos inherentes asignados por el sistema, como el color de fondo y el título; el tipo de variable miembro son atributos definidos por el usuario. El tipo de método Get/Set puede referirse a variables que solo se pueden obtener y cambiar a través del método Get/Set; (Esto no ha sido estudiado).

2.2 Agregar método de control

En la pestaña "Automatización", haga clic en "Agregar método" a la derecha y aparecerá un cuadro de diálogo:

Nombre externo : Nombre externo del método.

Nombre interno: nombre interno del método.

Tipo de retorno: Tipo de valor de retorno. Además de los tipos de datos básicos, como los números enteros, existen muchos tipos de datos avanzados complejos.

Implementación: Método de implementación. Dos tipos: método inherente y método personalizado.

Lista de parámetros: Lista de parámetros. Nombres de parámetros y tipos de parámetros: los tipos de parámetros incluyen muchos tipos de datos avanzados.

2.3 Agregar eventos de control

Cambie a la pestaña "Eventos ActiveX" y haga clic en "Agregar evento" a la derecha, aparecerá un cuadro de diálogo:

Nombre externo: nombre externo del evento.

Nombre interno: El nombre interno del evento. Hay un prefijo "Fuego" adicional al nombre externo.

Implementación: Método de implementación. Dos tipos: eventos inherentes y eventos personalizados. Los eventos intrínsecos son generalmente movimientos del mouse, doble clic, etc. Estos eventos se activan mediante mensajes del sistema. Los eventos personalizados son una función completamente definida por el usuario, pero el usuario debe llamar a esta función en el archivo fuente (llamada internamente, para el control Para el usuario, es equivalente a que el evento se active en el lugar de la llamada, y los parámetros pasados ​​​​internamente son la información adjunta al mensaje generado por este evento).

Lista de parámetros: lista de parámetros. Nombres de parámetros y tipos de parámetros: los tipos de parámetros incluyen muchos tipos de datos avanzados.

Descripción general: después de agregar propiedades, métodos y eventos al control a través de la herramienta "Asistente de clases", VC++ generará automáticamente código en el archivo correspondiente, como la asignación entre los atributos del método interno y los atributos del método externo. , establecimiento de mensajes, declaración de mensajes, etc. Si el usuario desea realizar una investigación en profundidad sobre la introducción, también debe estar familiarizado con la estructura del programa, conocer la función de cada parte del código, saber qué partes del código genera automáticamente el sistema, y qué código debe agregar manualmente el usuario. Aunque el entorno de desarrollo de Visual C++ tiene muchas ventajas, una desventaja también es obvia: la estructura del código es desordenada y no se siente tan bien como VS2005 y la serie posterior de Visual Studio. Sin embargo, dado que VC6.0 es un entorno de desarrollo relativamente clásico y la programación C ++ en Internet se basa básicamente en VC6.0, es necesario aprenderlo para poder comprender y asimilar el código en línea.

2.4 Generar archivos ocx y depurar

Compile directamente el proyecto donde el usuario ha agregado código personalizado, y luego se generará un archivo ocx en el directorio de depuración del proyecto. el registro de este fichero de control.

La herramienta de depuración para el control sigue siendo "Contenedor de prueba de control ActiveX".

Supongamos que agregamos un evento al control: evento inherente - evento de movimiento del mouse "MouseMove"; evento definido por el usuario - evento ocxClick (este evento se activa con el mensaje "WM_MOUSEMOVE", el retorno es el x- coordenada de la posición actual del ratón).

Ejecute "ActiveX Control Test Container" e inserte el control actual. Cuando el mouse se mueve sobre él, puede ver que se genera el evento MouseMove.

Al mismo tiempo, puede probar el método de control a través de "Control" - "Invocar método". El método de prueba consiste en ingresar los parámetros y devuelve el resultado del cálculo (se utiliza el método personalizado funHello). como ejemplo a continuación).

3. Cómo utilizar el control

3.1 Registrar el control

Hay muchas formas de instalar el control ocx. Esta es la más sencilla.

Pasos:

1. Copie el archivo de control OCX que debe instalarse en un directorio, como el directorio raíz de la unidad C.

2. Ingrese a Inicio y haga clic en Ejecutar.

3. Escribe regsvr32 C:/xxxx.ocx en el cuadro que aparece. (XXXX es el nombre del control, C:/ es el directorio)

4. Haga clic en Confirmar y espere un recordatorio de que el registro se realizó correctamente.

3.2 Llamar al control ActiveX

Como componente COM general, ActiveX puede ser llamado desde diferentes lenguajes.

3.2.1 Llamada a través de VC++

Utilice VC6.0 para crear una aplicación de diálogo MFC básica

Después de completar el asistente del programa. Realice los siguientes pasos:

1. Ejecute "Proyecto"-"Agregar al proyecto"--"Componentes y controles".

2. En el cuadro de diálogo emergente de exploración de archivos, busque el control que acaba de registrar en el directorio de archivos de controles ActiveX registrados, como "Control OcxDemo", y luego haga clic en el botón "Insertar" para agregarlo. este control a la colección de la barra de herramientas de control.

3. Arrastre el control OCX recién agregado en la barra de herramientas de control a la ventana principal de la aplicación.

Después de completar los pasos anteriores, puede usar este control en VC como un control normal (haga clic derecho en este control, puede ver los "eventos" y las "propiedades" de este control, que es cuando escriba esos "nombres externos" en el código fuente de control).

3.2.2 Llamadas a través de C#

De hecho, este es el punto clave, porque la tecnología ActiveX de llamadas entre idiomas es el aspecto más prometedor del autor.

Utilice Visual Studio 2005 para crear un nuevo programa de ventana C#.NET de Windows, luego haga clic derecho en "Seleccionar elementos" en el panel de la caja de herramientas, seleccione Componentes COM y busque el control ActiveX que registró:

Después de la confirmación, el control OcxDemo Control se cargará en la caja de herramientas. Puede arrastrar este control directamente a la ventana principal de la aplicación C#.NET y luego usarlo como un control normal.

Por ejemplo, el evento personalizado del control ActiveX en este artículo se activa mediante el movimiento del mouse en la aplicación, siempre que el mouse se mueva sobre el control, se activará el evento personalizado y se obtendrá el. Coordenada de abscisas de la posición actual del ratón.

4. Algunos consejos finales

1) Al personalizar un control, puede configurar la apariencia del control en la función OnDraw() del código fuente del control (es decir, el El control se arrastra a la aplicación (la forma en que aparece en el programa es generalmente un cuadro blanco con una elipse inscrita de forma predeterminada).

2) Cuando se usan eventos ActiveX con C#, los datos generados por el evento se incluyen en la variable Evento y solo necesita usar un operador de punto para sacarlos.

5. Outlook

Los tipos de valor de retorno de las funciones de control son muchos y complejos. Si desea utilizarlos bien, debe aprender esos tipos de datos OLE con cuidado. será necesario en el futuro. Aprendamos lentamente de vez en cuando.