1. Introducción a la tecnología OLE
OLE y DDE son mecanismos que admiten la comunicación mutua entre aplicaciones de Windows. La tecnología OLE integra aplicaciones de Windows a través de "objetos", que utilizan imágenes, gráficos, bases de datos, sonidos, textos, etc. para formar objetos compuestos (también llamados documentos compuestos). La tecnología OLE es un conjunto de protocolos para implementar objetos vinculados u objetos incrustados en documentos compuestos. Esta tecnología fue propuesta por primera vez por Aldus en 1988 y luego fue introducida en Windows por Microsoft. Al utilizar OLE, una aplicación puede cooperar con otras aplicaciones para producir documentos compuestos que contienen diferentes tipos de objetos, y los usuarios pueden manipular fácilmente los objetos contenidos en el documento.
El software de Windows que admite llamadas OLE tendrá información de registro en Windows. Consulte el contenido de la sección [incrustación] en WIN.INI para saber qué objetos OLE están incluidos en Windows y se pueden llamar. Paintbrush (PBRUSH.EXE), gráfico estadístico (MicrosoftGraph), empaquetador de objetos (PACKGER.EXE) y grabador (SOUNDREC.EXE) son programas OLE integrados de uso común en el entorno Windows.
Introduzca el objeto.
La mayoría de las herramientas de desarrollo en el entorno Windows (como C, C++, PASCAL, VisualBasic3.0, CA-Realizer, FoxPRoforWindows, VisualFoxProforWindows, etc.) admiten principalmente el desarrollo de aplicaciones con la capacidad de llamar a objetos OLE. 0 desarrollar programas de llamadas OLE es más fácil.
Existen muchas ventajas al desarrollar aplicaciones utilizando tecnología OLE en entorno Windows:
(1) Mejorar la eficiencia del desarrollo de software: al incorporar OLE en otras aplicaciones WINDOWS, el trabajo de desarrollo de software realizado por los programadores de aplicaciones en realidad se convierte en integración de software (o "combinación de software"), que es más fácil que desarrollar funciones de software una por una. mucho más rápido y el ciclo de desarrollo del software de aplicación se acorta considerablemente;
(2) Rendimiento estable y confiable: dado que los programas de objetos integrados OLE son software comercial que ha sido probado rigurosamente, el software "combinado" solo necesita probarse rigurosamente para la parte del "proceso combinado" (la carga de trabajo de las pruebas es relativamente grande). es relativamente pequeño), puede convertirse en software de alta calidad con un rendimiento estable y confiable;
(3) Funciones completas: OLE está integrado en otras aplicaciones WINDOWS, no solo "incorporando" los datos de otras aplicaciones, sino también "integrando" las funciones de otras aplicaciones. Todos los objetos integrados de WINDOWSOLE se pueden "incrustar" en el software de la aplicación. Por ejemplo, puede utilizar Word, Excel, Mail, Microsoft Graph, etc. para crear un software de sistema de automatización de oficina integral que incluya procesamiento de textos, informes electrónicos, correo electrónico y. gráficos estadísticos;
(4) Los desarrolladores ya no necesitan ser expertos en programación: Visual Basic 3.0 proporciona la función de llamada OLE2.0, lo que reduce en gran medida la dificultad de las llamadas OLE. Los desarrolladores de software generales pueden desarrollar aplicaciones que llaman objetos OLE de Windows.
Visual Basic para Windows 3.0 (en adelante, VB) es un sistema de desarrollo avanzado para Windows. Adopta un mecanismo controlado por eventos, un diseño de interfaz visual y un entorno integrado de desarrollo, depuración y compilación. VB también proporciona funciones de desarrollo de programas DDE y OLE. VB es adecuado tanto para programadores junior como para programadores senior para escribir software de aplicación potente.
2. Diseño de sistema de dibujo general.
1. Agregue la herramienta MicrosoftDrawOLE a Windows:
(1) Modificar win.ini:
[incrustar]
MSDraw=MicrosoftDrawing,MicrosoftDrawing,c:/yzgraph/msdraw.exe,imagen
(2)Crear MSDRAW.REG:
REGEDITAR
HEKY_CLASSES_ROOT/MSDraw=Dibujo de Microsoft
HKEY_CLASSES_ROOT/MSDraw/protocol/StdFileEditing/server=c:/yzgraph/msdraw.Exe
(3) Ejecute REGEDIT.EXEMSDRAW.REG y "La información en c:/yzgraph/msdraw.exe" se ha registrado correctamente en la base de datos de inicio de sesión" aparecerá en la pantalla.
(4) Copie MSDRAW.EXE y MS-DRAW.HLP del subdirectorio /windows/msapps/msdraw en la versión china de Microsoft Word 5.0 al subdirectorio c:/yzgraph.
2. Cree un FORM1 en VB: inicie VisualBASIC3.0 y seleccione el menú Archivo-NEWProject;
3. Cree tres objetos de botón en FORM1: "Guardar", "Imprimir" y "Salir";
4. Cree un objeto OLE2 en FORM1: seleccione el control OLE2.0 en la ventana Caja de herramientas, mueva el mouse a la ventana Forml, presione el botón izquierdo del mouse mientras mueve el cursor del mouse y arrastre un pequeño rectángulo. Suelte el mouse izquierdo. En este momento, aparecerá la ventana de diálogo "insertar objeto" en la pantalla. Seleccione CreateNew-MicrosoftDrawing-ok. En este momento, MicrosoftDrawing se iniciará y saldrá de MicrosoftDrawing.
5. Agregue un control de impresión y guardado de gráficos (mhoutbx.vbx) en Visual Basic 3.0:
mhoutbx.vbx es un control VBX universal con visualización gráfica y funciones de impresión proporcionadas por MicroHelp. Seleccione el menú Archivo-Agregar archivo en VisualBasic3.0 y seleccione mhoutbx.bx;
Tamaño automático=-1'Verdadero
EraseForRead=-1'Verdadero
6. Cree un objeto mhoutbx para guardar e imprimir gráficos en FORM1 (usado para MicrosoftDraw
Guardar resultados, imprimir);
7. Haga que FORM1 esté siempre en la "parte superior" (es decir, no cubierto por otras ventanas):
Global.bas:
GlobalConstSWP_MOVE=2
GlobalConstSWP_NOSIZE=1
GlobalConstFLAGS=SWP_MOVEOSWP_NOSIZE
GlobalConstHWND_TOPMOST=-1
GlobalConstHWND_NOTOPMOST=-2
DeclareFunctionSetWindowsPosLib"usuario"(ByValh,ByValhb,ByValX,
PorValy,PorValcx,PorValcy,Por-Valf)ComoEntero
DeclareFunctionGetSystemMetricsLib"usuario"(ByValnIn-dex)
Const global
NULO=0&
GlobalConstWM_SYSCOMMAND=&H112
GlobalConstWM_LBUTTONDBLCLK=&H203
GlobalConstSC_CLOSE=&HF06O
GlobalConstWM-CLOSE=&H10
GlobalConstWM_GETMINMAXINFO=&H24
DeclareFunctionFindWindowsLib"Usuario"(ByVallpClassNameAsAny,
PorVallpWindowsNameAsAny)
Como entero
DeclareFunctionsendmessage&Lib"usuario"(ByValhWnd,ByValwmsg,
PorValwparam,PorValiparamAsLong)
GlobalConstSW_SHOWMAXIMIZED=3
DeclareFunctionShowWindowsLib"Usuario"(ByValhWndAsInteger,
PorValnCmdShowAsInteger)AsInteger
8. Active MSDraw y maximícelo:
SubForm_Load()
Dimrc,msdraw_h,Ipclass$,lpcaption$
formulario1,Ancho=Panel13D1.Ancho
rc=EstablecerPosVentana(formulario1.hWnd,HWND
_TOPMOST,0,0,0,0,Banderas)
rc=enviar mensaje(formulario1,OLE1.hWnd,WM
_LBUTTONDBLCLK,0,NILL)
AppActivate"MicrosoftDraw-Drawing"
Enviar claves"F",Verdadero
Enviar claves"{LEFT}X",Verdadero
formulario1.Mostrar
FinSub
9. Guardar gráfico:
SubPanel3D1_Click()
a$="c:/prueba.wmf"
AppActivate"MicrosoftDraw-Drawing"
Enviar claves"FU",Verdadero
FORM1.MhOutbox1.MetaFileName=a$
FORM1.MhOutbox1.SaveMetaFile=Verdadero
FinSub
10. Impresión gráfica:
SubPanel3D2_Click()
AppActivate"MicrosoftDraw-Drawing"
Enviar claves"FU",Verdadero
MhOutboxl.OutContext=1
MhOutbox.EndPage=Verdadero
FinSub
11. Salir:
SubPanel3D3_Click()
Descargar formulario1
Fin
FinSub->