1. Pengantar teknologi OLE
OLE dan DDE adalah mekanisme yang mendukung komunikasi timbal balik antar aplikasi Windows. Teknologi OLE mengintegrasikan aplikasi Windows melalui "objek", yang menggunakan gambar, bagan, database, suara, teks, dll. untuk membentuk objek gabungan (juga disebut dokumen komposit). Teknologi OLE adalah seperangkat protokol untuk mengimplementasikan objek tertaut atau objek yang disematkan dalam dokumen gabungan. Teknologi ini pertama kali diusulkan oleh Aldus pada tahun 1988 dan kemudian diperkenalkan ke Windows oleh Microsoft. Dengan menggunakan OLE, suatu aplikasi dapat bekerja sama dengan aplikasi lain untuk menghasilkan dokumen gabungan yang berisi berbagai jenis objek, dan objek yang terdapat dalam dokumen tersebut dapat dengan mudah dimanipulasi oleh pengguna.
Perangkat lunak Windows yang mendukung panggilan OLE akan memiliki informasi pendaftaran di Windows. Periksa konten bagian [penyematan] di WIN.INI untuk mengetahui objek OLE mana yang disertakan dalam Windows dan dapat dipanggil. Kuas (PBRUSH.EXE), grafik statistik (MicrosoftGraph), pemaket objek (PACKGER.EXE) dan perekam (SOUNDREC.EXE) adalah program tertanam OLE yang umum digunakan di lingkungan Windows.
Masukkan objeknya.
Sebagian besar alat pengembangan di lingkungan Windows (seperti C, C++, PASCAL, VisualBasic3.0, CA-Realizer, FoxPRoforWindows, VisualFoxProforWindows, dll.) sebagian besar mendukung pengembangan aplikasi dengan kemampuan untuk memanggil objek OLE. 0 pengembangan program panggilan OLE lebih mudah.
Ada banyak keuntungan mengembangkan aplikasi menggunakan teknologi OLE di lingkungan Windows:
(1) Meningkatkan efisiensi pengembangan perangkat lunak: Dengan menyematkan OLE ke dalam aplikasi WINDOWS lainnya, pekerjaan pengembangan perangkat lunak yang dilakukan oleh pemrogram aplikasi sebenarnya menjadi integrasi perangkat lunak (atau "kombinasi perangkat lunak"), yang lebih mudah daripada mengembangkan fungsi perangkat lunak satu per satu jauh lebih cepat dan siklus pengembangan perangkat lunak aplikasi menjadi jauh lebih singkat;
(2) Kinerja yang stabil dan andal: Karena program objek tertanam OLE adalah perangkat lunak komersial yang telah diuji secara ketat, perangkat lunak "gabungan" hanya perlu diuji secara ketat untuk bagian "proses gabungan" (beban kerja pengujian relatif besar). relatif kecil), dapat menjadi perangkat lunak berkualitas tinggi dengan kinerja yang stabil dan andal;
(3) Fungsi lengkap: OLE tertanam di aplikasi WINDOWS lain, tidak hanya "menyematkan" data aplikasi lain, tetapi juga "menyematkan" fungsi aplikasi lain. Semua objek yang tertanam di WINDOWSOLE dapat "disematkan" ke dalam perangkat lunak aplikasi. Misalnya, Anda dapat menggunakan Word, Excel, Mail, Microsoft Graph, dll. untuk membangun perangkat lunak sistem otomasi kantor yang komprehensif termasuk pengolah kata, laporan elektronik, email, dan grafik statistik;
(4) Pengembang tidak lagi perlu menjadi ahli pemrograman: Visual Basic 3.0 menyediakan fungsi panggilan OLE2.0, yang sangat mengurangi kesulitan panggilan OLE. Pengembang perangkat lunak umum dapat mengembangkan aplikasi yang memanggil objek Windows OLE.
Visual Basic untuk Windows 3.0 (selanjutnya disebut VB) adalah sistem pengembangan lanjutan untuk Windows. Ia mengadopsi mekanisme berbasis peristiwa, desain antarmuka visual dan pengembangan terintegrasi, lingkungan debugging dan kompilasi. VB juga menyediakan fungsi pengembangan program DDE dan OLE. VB cocok untuk pemrogram junior dan pemrogram senior untuk menulis perangkat lunak aplikasi yang kuat.
2. Perancangan sistem gambar umum
1. Tambahkan alat MicrosoftDrawOLE ke Windows:
(1) Ubah win.ini:
[penyematan]
MSDraw=MicrosoftDrawing,MicrosoftDrawing,c:/yzgraph/msdraw.exe,gambar
(2)Buat MSDRAW.REG:
REGEDIT
HEKY_CLASSES_ROOT/MSDraw=MicrosoftDrawing
HKEY_CLASSES_ROOT/MSDraw/protocol/StdFileEditing/server=c:/yzgraph/msdraw.Exe
(3) Jalankan REGEDIT.EXEMSDRAW.REG, dan "Informasi di c:/yzgraph/msdraw.exe" telah berhasil login di database login" akan muncul di layar.
(4) Salin MSDRAW.EXE dan MS-DRAW.HLP dari subdirektori /windows/msapps/msdraw di Microsoft Word 5.0 versi China ke subdirektori c:/yzgraph.
2. Buat FORM1 di VB: mulai VisualBASIC3.0 dan pilih menu File-NEWProject;
3. Buat tiga objek tombol pada FORM1: "Simpan", "Cetak" dan "Keluar";
4. Buat objek OLE2 pada FORM1: Pilih kontrol OLE2.0 di jendela Toolbox, gerakkan mouse ke jendela Forml, tekan kiri mouse sambil menggerakkan kursor mouse dan tarik keluar persegi panjang kecil. Lepaskan mouse kiri. Saat ini, jendela dialog "masukkan objek" akan muncul di layar. Pilih CreateNew-MicrosoftDrawing-ok. Saat ini, MicrosoftDrawing akan memulai dan keluar dari MicrosoftDrawing;
5. Tambahkan kontrol penyimpanan dan pencetakan grafis (mhoutbx.vbx) di Visual Basic 3.0:
mhoutbx.vbx adalah kontrol VBX universal dengan tampilan grafis dan fungsi pencetakan yang disediakan oleh MicroHelp. Pilih menu File-AddFile di VisualBasic3.0 dan pilih mhoutbx.bx;
UkuranOtomatis=-1'Benar
EraseForRead=-1'Benar
6. Buat objek mhoutbx untuk menyimpan dan mencetak grafik pada FORM1 (digunakan untuk MicrosoftDraw
Penyimpanan hasil, cetakan);
7. Jadikan FORM1 selalu di "atas" (yaitu tidak tertutup oleh jendela lain):
Global.bas:
GlobalConstSWP_MOVE=2
GlobalConstSWP_NOSIZE=1
GlobalConstFLAGS=SWP_MOVEAtauSWP_NOSIZE
GlobalConstHWND_TOPMOST=-1
GlobalConstHWND_NOTOPMOST=-2
DeklarasikanFunctionSetWindowsPosLib"pengguna"(ByValh,ByValhb,ByValX,
ByValy,ByValcx,ByValcy,By-Valf)AsInteger
DeklarasikanFunctionGetSystemMetricsLib"pengguna"(ByValnIn-dex)
Konstan Global
nihil=0&
GlobalConstWM_SYSCOMMAND=&H112
GlobalConstWM_LBUTTONDBLCLK=&H203
GlobalConstSC_CLOSE=&HF06O
GlobalConstWM-TUTUP=&H10
GlobalConstWM_GETMINMAXINFO=&H24
DeklarasikanFunctionFindWindowsLib"User"(ByVallpClassNameAsAny,
OlehVallpWindowsNameAsAny)
Sebagai Bilangan Bulat
DeklarasikanFungsimengirim pesan&Lib"pengguna"(OlehValhWnd,OlehValwmsg,
OlehValwparam,OlehValiparamAsLong)
GlobalConstSW_SHOWMAXIMIZED=3
DeklarasikanFunctionShowWindowsLib"User"(ByValhWndAsInteger,
OlehValnCmdShowAsInteger)SebagaiInteger
8. Aktifkan MSDraw dan maksimalkan:
SubFormulir_Beban()
Dimrc,msdraw_h,Ipclass$,lpcaption$
form1,Lebar=Pane13D1.Lebar
rc=SetWindowPos(form1.hWnd,HWND
_TOPMOST,0,0,0,0,Bendera)
rc=kirim pesan(form1,OLE1.hWnd,WM
_LBUTTONDBLCLK,0,NILL)
AplikasiAktifkan"MicrosoftDraw-Drawing"
SendKeys"F",Benar
SendKeys"{LEFT}X",Benar
form1.Tampilkan
Sub Akhir
9. Penyimpanan grafis:
SubPanel3D1_Klik()
a$="c:/test.wmf"
AplikasiAktifkan"MicrosoftDraw-Drawing"
SendKeys"FU",Benar
FORM1.MhOutbox1.MetaFileName=a$
FORM1.MhOutbox1.SaveMetaFile=Benar
Sub Akhir
10. Pencetakan grafis:
SubPanel3D2_Klik()
AplikasiAktifkan"MicrosoftDraw-Drawing"
SendKeys"FU",Benar
MhOutboxl.OutContext=1
MhOutbox.EndPage=Benar
Sub Akhir
11. Keluar:
SubPanel3D3_Klik()
Bongkar formulir1
Akhir
Sub Akhir->