1. Einführung in die OLE-Technologie
OLE und DDE sind Mechanismen, die die gegenseitige Kommunikation zwischen Windows-Anwendungen unterstützen. Die OLE-Technologie integriert Windows-Anwendungen über „Objekte“, die Bilder, Diagramme, Datenbanken, Töne, Texte usw. verwenden, um zusammengesetzte Objekte (auch zusammengesetzte Dokumente genannt) zu bilden. Bei der OLE-Technologie handelt es sich um eine Reihe von Protokollen zur Implementierung verknüpfter oder eingebetteter Objekte in zusammengesetzten Dokumenten. Diese Technologie wurde erstmals 1988 von Aldus vorgeschlagen und später von Microsoft in Windows eingeführt. Mithilfe von OLE kann eine Anwendung mit anderen Anwendungen zusammenarbeiten, um zusammengesetzte Dokumente mit unterschiedlichen Objekttypen zu erstellen, und die im Dokument enthaltenen Objekte können von Benutzern leicht manipuliert werden.
Windows-Software, die OLE-Aufrufe unterstützt, verfügt über Registrierungsinformationen in Windows. Überprüfen Sie den Inhalt des Abschnitts [embedding] in WIN.INI, um zu erfahren, welche OLE-Objekte in Windows enthalten sind und aufgerufen werden können. Paintbrush (PBRUSH.EXE), Statistikdiagramm (MicrosoftGraph), Objektpaketierer (PACKGER.EXE) und Rekorder (SOUNDREC.EXE) sind häufig verwendete OLE-eingebettete Programme in der Windows-Umgebung.
Geben Sie das Objekt ein.
Die meisten Entwicklungstools in der Windows-Umgebung (wie C, C++, PASCAL, VisualBasic3.0, CA-Realizer, FoxPRoforWindows, VisualFoxProforWindows usw.) unterstützen meist die Entwicklung von Anwendungen mit der Möglichkeit, OLE-Objekte aufzurufen. Im Gegensatz dazu unterstützt VisualBasic3. 0-Entwicklung ist das Aufrufen von OLE-Programmen einfacher.
Die Entwicklung von Anwendungen mithilfe der OLE-Technologie in einer Windows-Umgebung bietet viele Vorteile:
(1) Verbessern Sie die Effizienz der Softwareentwicklung: Durch die Einbettung von OLE in andere WINDOWS-Anwendungen wird die von Anwendungsprogrammierern durchgeführte Softwareentwicklungsarbeit tatsächlich zur Softwareintegration (oder „Softwarekombination“), was einfacher ist, als Softwarefunktionen einzeln zu entwickeln viel schneller und der Entwicklungszyklus der Anwendungssoftware wird erheblich verkürzt;
(2) Stabile und zuverlässige Leistung: Da es sich bei eingebetteten OLE-Objektprogrammen um kommerzielle Software handelt, die gründlich getestet wurde, muss die „kombinierte“ Software nur für den „kombinierten Prozess“-Teil gründlich getestet werden (der Testaufwand ist relativ groß). ist relativ klein), kann daraus hochwertige Software mit stabiler und zuverlässiger Leistung werden;
(3) Vollständige Funktionen: OLE ist in andere WINDOWS-Anwendungen eingebettet und „eingebettet“ nicht nur die Daten anderer Anwendungen, sondern auch die Funktionen anderer Anwendungen. Alle in WINDOWSOLE eingebetteten Objekte können in die Anwendungssoftware „eingebettet“ werden. Sie können beispielsweise Word, Excel, Mail, Microsoft Graph usw. verwenden, um eine umfassende Büroautomatisierungssoftware einschließlich Textverarbeitung, elektronischer Berichte, E-Mail usw. zu erstellen statistische Grafiken;
(4) Entwickler müssen keine Programmierexperten mehr sein: Visual Basic 3.0 bietet die OLE2.0-Aufruffunktion, die die Schwierigkeit des OLE-Aufrufs erheblich reduziert. Allgemeine Softwareentwickler können Anwendungen entwickeln, die Windows-OLE-Objekte aufrufen.
Visual Basic für Windows 3.0 (im Folgenden als VB bezeichnet) ist ein fortschrittliches Entwicklungssystem für Windows. Es verfügt über ereignisgesteuerte Mechanismen, ein visuelles Schnittstellendesign und eine integrierte Entwicklungs-, Debugging- und Kompilierungsumgebung, die auch DDE- und OLE-Programmentwicklungsfunktionen bietet. VB eignet sich sowohl für Junior-Programmierer als auch für Senior-Programmierer, um leistungsstarke Anwendungssoftware zu schreiben.
2. Entwurf eines allgemeinen Zeichensystems
1. Fügen Sie das MicrosoftDrawOLE-Tool zu Windows hinzu:
(1) Win.ini ändern:
[Einbettung]
MSDraw=MicrosoftDrawing,MicrosoftDrawing,c:/yzgraph/msdraw.exe,picture
(2) MSDRAW.REG erstellen:
REGEDIT
HEKY_CLASSES_ROOT/MSDraw=MicrosoftDrawing
HKEY_CLASSES_ROOT/MSDraw/protocol/StdFileEditing/server=c:/yzgraph/msdraw.Exe
(3) Führen Sie REGEDIT.EXEMSDRAW.REG aus und „Die Informationen in c:/yzgraph/msdraw.exe“ wurden erfolgreich in der Anmeldedatenbank protokolliert“ wird auf dem Bildschirm angezeigt.
(4) Kopieren Sie MSDRAW.EXE und MS-DRAW.HLP aus dem Unterverzeichnis /windows/msapps/msdraw in der chinesischen Version von Microsoft Word 5.0 in das Unterverzeichnis c:/yzgraph.
2. Erstellen Sie ein FORM1 in VB: Starten Sie VisualBASIC3.0 und wählen Sie das Menü Datei-NEWProjekt;
3. Erstellen Sie drei Schaltflächenobjekte auf FORM1: „Speichern“, „Drucken“ und „Beenden“;
4. Erstellen Sie ein OLE2-Objekt auf FORM1: Wählen Sie das OLE2.0-Steuerelement im Toolbox-Fenster aus, bewegen Sie die Maus zum Forml-Fenster, drücken Sie die linke Maustaste, während Sie den Mauszeiger bewegen, und ziehen Sie ein kleines Rechteck auf. Lassen Sie die linke Maustaste los. Das Dialogfenster „Objekt einfügen“ wird auf dem Bildschirm angezeigt. Wählen Sie „CreateNew-MicrosoftDrawing-ok“. Zu diesem Zeitpunkt wird MicrosoftDrawing gestartet und beendet.
5. Fügen Sie in Visual Basic 3.0 ein Steuerelement zum Speichern und Drucken von Grafiken (mhoutbx.vbx) hinzu:
mhoutbx.vbx ist ein universelles VBX-Steuerelement mit grafischen Anzeige- und Druckfunktionen, das von MicroHelp bereitgestellt wird. Wählen Sie in VisualBasic3.0 das Menü „Datei-Datei hinzufügen“ und wählen Sie „mhoutbx.bx“ aus.
AutoSize=-1'True
EraseForRead=-1'True
6. Erstellen Sie ein mhoutbx-Objekt zum Speichern und Drucken von Grafiken auf FORM1 (wird für MicrosoftDraw verwendet).
Ergebnisspeicherung, Ausdruck);
7. Platzieren Sie FORM1 immer „oben“ (d. h. nicht von anderen Fenstern verdeckt):
Global.bas:
GlobalConstSWP_MOVE=2
GlobalConstSWP_NOSIZE=1
GlobalConstFLAGS=SWP_MOVEOrSWP_NOSIZE
GlobalConstHWND_TOPMOST=-1
GlobalConstHWND_NOTOPMOST=-2
DeclareFunctionSetWindowsPosLib"user"(ByValh,ByValhb,ByValX,
ByValy,ByValcx,ByValcy,By-Valf)AsInteger
DeclareFunctionGetSystemMetricsLib"user"(ByValnIn-dex)
GlobalConst
NILL=0&
GlobalConstWM_SYSCOMMAND=&H112
GlobalConstWM_LBUTTONDBLCLK=&H203
GlobalConstSC_CLOSE=&HF06O
GlobalConstWM-CLOSE=&H10
GlobalConstWM_GETMINMAXINFO=&H24
DeclareFunctionFindWindowsLib"User"(ByVallpClassNameAsAny,
ByVallpWindowsNameAsAny)
Als Ganzzahl
DeclareFunctionsendmessage&Lib"user"(ByValhWnd,ByValwmsg,
ByValwparam,ByValiparamAsLong)
GlobalConstSW_SHOWMAXIMIZED=3
DeclareFunctionShowWindowsLib"User"(ByValhWndAsInteger,
ByValnCmdShowAsInteger)AsInteger
8. Aktivieren Sie MSDraw und maximieren Sie es:
SubForm_Load()
Dimrc,msdraw_h,Ipclass$,lpcaption$
form1,Width=Pane13D1.Width
rc=SetWindowPos(form1.hWnd,HWND
_TOPMOST,0,0,0,0,Flags)
rc=sendmessage(form1,OLE1.hWnd,WM
_LBUTTONDBLCLK,0,NILL)
AppActivate „MicrosoftDraw-Drawing“
SendKeys"F",True
SendKeys"{LEFT}X",True
form1.Anzeigen
EndSub
9. Grafik speichern:
SubPanel3D1_Click()
a$="c:/test.wmf"
AppActivate „MicrosoftDraw-Drawing“
SendKeys"FU",True
FORM1.MhOutbox1.MetaFileName=a$
FORM1.MhOutbox1.SaveMetaFile=True
EndSub
10. Grafikdruck:
SubPanel3D2_Click()
AppActivate „MicrosoftDraw-Drawing“
SendKeys"FU",True
MhOutboxl.OutContext=1
MhOutbox.EndPage=True
EndSub
11. Ausstieg:
SubPanel3D3_Click()
Entladeform1
Ende
EndSub->