1. Introduction à la technologie OLE
OLE et DDE sont des mécanismes qui prennent en charge la communication mutuelle entre les applications Windows. La technologie OLE intègre les applications Windows via des « objets », qui utilisent des images, des graphiques, des bases de données, des sons, des textes, etc. pour former des objets composites (également appelés documents composites). La technologie OLE est un ensemble de protocoles permettant d'implémenter des objets liés ou incorporés dans des documents composés. Cette technologie a été proposée pour la première fois par Aldus en 1988 et a ensuite été introduite dans Windows par Microsoft. Grâce à OLE, une application peut coopérer avec d'autres applications pour produire des documents composites contenant différents types d'objets, et les objets contenus dans le document peuvent être facilement manipulés par les utilisateurs.
Les logiciels Windows qui prennent en charge les appels OLE auront des informations d'enregistrement dans Windows. Vérifiez le contenu de la section [embedding] dans WIN.INI pour savoir quels objets OLE sont inclus dans Windows et peuvent être appelés. Paintbrush (PBRUSH.EXE), graphique statistique (MicrosoftGraph), packager d'objets (PACKGER.EXE) et enregistreur (SOUNDREC.EXE) sont des programmes intégrés OLE couramment utilisés dans l'environnement Windows.
Entrez l'objet.
La plupart des outils de développement dans l'environnement Windows (tels que C, C++, PASCAL, VisualBasic3.0, CA-Realizer, FoxPRoforWindows, VisualFoxProforWindows, etc.) prennent principalement en charge le développement d'applications avec la possibilité d'appeler des objets OLE. En revanche, VisualBasic3. 0, le développement de programmes d'appel OLE est plus simple.
Il existe de nombreux avantages à développer des applications utilisant la technologie OLE dans un environnement Windows :
(1) Améliorer l'efficacité du développement logiciel : en intégrant OLE dans d'autres applications WINDOWS, le travail de développement logiciel effectué par les programmeurs d'applications devient en fait une intégration logicielle (ou « combinaison logicielle »), ce qui est plus facile que de développer des fonctions logicielles une par une. beaucoup plus rapide et le cycle de développement des logiciels d'application est considérablement raccourci ;
(2) Performances stables et fiables : étant donné que les programmes objets intégrés OLE sont des logiciels commerciaux qui ont été rigoureusement testés, le logiciel « combiné » n'a besoin d'être rigoureusement testé que pour la partie « processus combiné » (la charge de travail de test est relativement importante). est relativement petit), il peut devenir un logiciel de haute qualité avec des performances stables et fiables ;
(3) Fonctions complètes : OLE est intégré dans d'autres applications WINDOWS, non seulement « intégrant » les données d'autres applications, mais également « intégrant » les fonctions d'autres applications. Tous les objets intégrés à WINDOWSOLE peuvent être « intégrés » dans le logiciel d'application. Par exemple, vous pouvez utiliser Word, Excel, Mail, Microsoft Graph, etc. pour créer un logiciel de système de bureautique complet comprenant le traitement de texte, les rapports électroniques, le courrier électronique et. graphiques statistiques;
(4) Les développeurs n'ont plus besoin d'être des experts en programmation : Visual Basic 3.0 fournit la fonction d'appel OLE2.0, ce qui réduit considérablement la difficulté des appels OLE. Les développeurs de logiciels généraux peuvent développer des applications qui appellent des objets Windows OLE.
Visual Basic pour Windows 3.0 (ci-après dénommé VB) est un système de développement avancé pour Windows. Il adopte un mécanisme basé sur les événements, une conception d'interface visuelle et un environnement de développement, de débogage et de compilation intégré qui fournit également des fonctions de développement de programmes DDE et OLE. VB convient aussi bien aux programmeurs juniors qu'aux programmeurs seniors pour écrire des logiciels d'application puissants.
2. Conception du système de dessin général
1. Ajoutez l'outil MicrosoftDrawOLE à Windows :
(1) Modifier win.ini :
[intégration]
MSDraw=MicrosoftDrawing,MicrosoftDrawing,c:/yzgraph/msdraw.exe,image
(2)Créez MSDRAW.REG :
RÉGÉDIT
HEKY_CLASSES_ROOT/MSDraw=MicrosoftDrawing
HKEY_CLASSES_ROOT/MSDraw/protocol/StdFileEditing/server=c:/yzgraph/msdraw.Exe
(3) Exécutez REGEDIT.EXEMSDRAW.REG et "Les informations contenues dans c:/yzgraph/msdraw.exe" ont été enregistrées avec succès dans la base de données de connexion" apparaîtront à l'écran.
(4) Copiez MSDRAW.EXE et MS-DRAW.HLP du sous-répertoire /windows/msapps/msdraw de la version chinoise de Microsoft Word 5.0 vers le sous-répertoire c:/yzgraph.
2. Créez un FORM1 dans VB : démarrez VisualBASIC3.0 et sélectionnez le menu Fichier-NEWProject ;
3. Créez trois objets bouton sur FORM1 : « Enregistrer », « Imprimer » et « Quitter » ;
4. Créez un objet OLE2 sur FORM1 : Sélectionnez le contrôle OLE2.0 dans la fenêtre Boîte à outils, déplacez la souris vers la fenêtre Forml, appuyez sur le bouton gauche de la souris tout en déplaçant le curseur de la souris et faites glisser un petit rectangle. Relâchez la souris gauche. À ce moment, la fenêtre de dialogue « insérer un objet » apparaîtra à l'écran. Sélectionnez CreateNew-MicrosoftDrawing-ok. À ce moment, MicrosoftDrawing démarrera et quittera MicrosoftDrawing ;
5. Ajoutez un contrôle d'enregistrement et d'impression de graphiques (mhoutbx.vbx) dans Visual Basic 3.0 :
mhoutbx.vbx est un contrôle VBX universel avec des fonctions d'affichage graphique et d'impression fournies par MicroHelp. Sélectionnez le menu File-AddFile dans VisualBasic3.0 et sélectionnez mhoutbx.bx ;
TailleAuto=-1'True
EraseForRead=-1'True
6. Créez un objet mhoutbx pour l'enregistrement et l'impression des graphiques sur FORM1 (utilisé pour MicrosoftDraw
Sauvegarde des résultats, impression);
7. Faites en sorte que FORM1 soit toujours en "haut" (c'est-à-dire non couvert par d'autres fenêtres) :
Global.bas :
GlobalConstSWP_MOVE=2
GlobalConstSWP_NOSIZE=1
GlobalConstFLAGS=SWP_MOVEOuSWP_NOSIZE
GlobalConstHWND_TOPMOST=-1
GlobalConstHWND_NOTOPMOST=-2
DéclareFunctionSetWindowsPosLib"utilisateur"(ByValh,ByValhb,ByValX,
ParValy,ByValcx,ByValcy,By-Valf)AsInteger
DeclareFunctionGetSystemMetricsLib"utilisateur"(ByValnIn-dex)
ConstGlobal
NILL=0&
GlobalConstWM_SYSCOMMAND=&H112
GlobalConstWM_LBUTTONDBLCLK=&H203
GlobalConstSC_CLOSE=&HF06O
GlobalConstWM-CLOSE=&H10
GlobalConstWM_GETMINMAXINFO=&H24
DeclareFunctionFindWindowsLib"User"(ByVallpClassNameAsAny,
ParVallpWindowsNameAsAny)
CommeEntier
DeclareFunctionsendmessage&Lib"user"(ByValhWnd,ByValwmsg,
ParValwparam,ParValiparamAsLong)
GlobalConstSW_SHOWMAXIMIZED=3
DeclareFunctionShowWindowsLib"User"(ByValhWndAsInteger,
ByValnCmdShowAsInteger)AsInteger
8. Activez MSDraw et maximisez-le :
Sous-Formulaire_Load()
Dimrc,msdraw_h,Ipclass$,lpcaption$
form1,Largeur=Pane13D1.Largeur
rc=SetWindowPos(form1.hWnd,HWND
_TOPMOST,0,0,0,0,Drapeaux)
rc=envoyer un message(form1,OLE1.hWnd,WM
_LBUTTONDBLCLK,0,NILL)
AppActivate "MicrosoftDraw-Drawing"
EnvoyerKeys"F",Vrai
SendKeys"{LEFT}X",Vrai
form1.Afficher
FinSub
9. Sauvegarde graphique :
Sous-Panel3D1_Click()
a$="c:/test.wmf"
AppActivate "MicrosoftDraw-Drawing"
SendKeys"FU",Vrai
FORM1.MhOutbox1.MetaFileName=a$
FORM1.MhOutbox1.SaveMetaFile=True
FinSub
10. Impression graphique :
Sous-Panel3D2_Click()
AppActivate "MicrosoftDraw-Drawing"
SendKeys"FU",Vrai
MhOutboxl.OutContext=1
MhOutbox.EndPage=True
FinSub
11. Sortie :
Sous-Panel3D3_Click()
Déchargerform1
Fin
FinSub->