1. ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยี OLE
OLE และ DDE เป็นกลไกที่สนับสนุนการสื่อสารร่วมกันระหว่างแอปพลิเคชัน Windows เทคโนโลยี OLE รวมแอปพลิเคชัน Windows ผ่าน "วัตถุ" ซึ่งใช้รูปภาพ แผนภูมิ ฐานข้อมูล เสียง ข้อความ ฯลฯ เพื่อสร้างวัตถุแบบผสม (หรือที่เรียกว่าเอกสารแบบผสม) เทคโนโลยี OLE คือชุดของโปรโตคอลสำหรับการนำออบเจ็กต์ที่เชื่อมโยงหรือออบเจ็กต์ที่ฝังไว้ในเอกสารผสมมาใช้ เทคโนโลยีนี้ถูกเสนอครั้งแรกโดย Aldus ในปี 1988 และต่อมาได้รับการแนะนำให้รู้จักกับ Windows โดย Microsoft การใช้ OLE แอปพลิเคชันสามารถทำงานร่วมกับแอปพลิเคชันอื่นๆ เพื่อสร้างเอกสารคอมโพสิตที่มีวัตถุประเภทต่างๆ และผู้ใช้สามารถจัดการวัตถุที่อยู่ในเอกสารได้อย่างง่ายดาย
ซอฟต์แวร์ Windows ที่รองรับการโทร OLE จะมีข้อมูลการลงทะเบียนใน Windows ตรวจสอบเนื้อหาของส่วน [การฝัง] ใน WIN.INI เพื่อดูว่าวัตถุ OLE ใดรวมอยู่ใน Windows และสามารถเรียกใช้ได้ พู่กัน (PBRUSH.EXE), กราฟสถิติ (MicrosoftGraph), ตัวบรรจุวัตถุ (PACKGER.EXE) และเครื่องบันทึก (SOUNDREC.EXE) มักใช้โปรแกรมฝังตัว OLE ในสภาพแวดล้อม Windows
ป้อนวัตถุ
เครื่องมือการพัฒนาส่วนใหญ่ในสภาพแวดล้อม Windows (เช่น C, C++, PASCAL, VisualBasic3.0, CA-Realizer, FoxPRoforWindows, VisualFoxProforWindows ฯลฯ ) ส่วนใหญ่สนับสนุนการพัฒนาแอปพลิเคชันที่มีความสามารถในการเรียกวัตถุ OLE การพัฒนา 0 โปรแกรมการโทร OLE นั้นง่ายกว่า
มีข้อดีหลายประการในการพัฒนาแอปพลิเคชันโดยใช้เทคโนโลยี OLE ในสภาพแวดล้อม Windows:
(1) ปรับปรุงประสิทธิภาพการพัฒนาซอฟต์แวร์: ด้วยการฝัง OLE ลงในแอปพลิเคชัน WINDOWS อื่น ๆ งานพัฒนาซอฟต์แวร์ที่ดำเนินการโดยโปรแกรมเมอร์แอปพลิเคชันจะกลายเป็นการรวมซอฟต์แวร์ (หรือ "การรวมซอฟต์แวร์") ซึ่งง่ายกว่าการพัฒนาฟังก์ชันซอฟต์แวร์ทีละโมดูล เร็วขึ้นมากและวงจรการพัฒนาซอฟต์แวร์แอพพลิเคชั่นก็สั้นลงอย่างมาก
(2) ประสิทธิภาพที่เสถียรและเชื่อถือได้: เนื่องจากโปรแกรมวัตถุฝังตัว OLE เป็นซอฟต์แวร์เชิงพาณิชย์ที่ได้รับการทดสอบอย่างเข้มงวด ซอฟต์แวร์ "รวม" จึงต้องได้รับการทดสอบอย่างเข้มงวดสำหรับส่วน "กระบวนการรวม" เท่านั้น (ปริมาณงานของการทดสอบค่อนข้างน้อย ) มันสามารถกลายเป็นซอฟต์แวร์คุณภาพสูงพร้อมประสิทธิภาพที่เสถียรและเชื่อถือได้
(3) ฟังก์ชั่นที่สมบูรณ์: OLE ถูกฝังอยู่ในแอปพลิเคชัน WINDOWS อื่น ๆ ไม่เพียง "ฝัง" ข้อมูลของแอปพลิเคชันอื่น แต่ยัง "ฝัง" ฟังก์ชันของแอปพลิเคชันอื่นด้วย ออบเจ็กต์ที่ฝังไว้ของ WINDOWSOLE ทั้งหมดสามารถ "ฝัง" ในแอพพลิเคชั่นซอฟต์แวร์ได้ ตัวอย่างเช่น คุณสามารถใช้ Word, Excel, Mail, Microsoft Graph ฯลฯ เพื่อสร้างซอฟต์แวร์ระบบอัตโนมัติในสำนักงานที่ครอบคลุม รวมถึงการประมวลผลคำ รายงานทางอิเล็กทรอนิกส์ อีเมล และ กราฟิกทางสถิติ
(4) นักพัฒนาไม่จำเป็นต้องเป็นผู้เชี่ยวชาญด้านการเขียนโปรแกรมอีกต่อไป: Visual Basic 3.0 มีฟังก์ชันการเรียก OLE2.0 ซึ่งช่วยลดความยากในการเรียก OLE ได้อย่างมาก นักพัฒนาซอฟต์แวร์ทั่วไปสามารถพัฒนาแอปพลิเคชันที่เรียกวัตถุ Windows OLE ได้
Visual Basic สำหรับ Windows 3.0 (ต่อไปนี้จะเรียกว่า VB) เป็นระบบการพัฒนาขั้นสูงสำหรับ Windows โดยนำกลไกที่ขับเคลื่อนด้วยเหตุการณ์ การออกแบบอินเทอร์เฟซแบบภาพ และสภาพแวดล้อมการพัฒนาแบบรวม การดีบัก และการคอมไพล์มาใช้ นอกจากนี้ VB ยังมีฟังก์ชันการพัฒนาโปรแกรม DDE และ OLE อีกด้วย VB เหมาะสำหรับทั้งโปรแกรมเมอร์รุ่นเยาว์และโปรแกรมเมอร์รุ่นอาวุโสในการเขียนแอพพลิเคชั่นซอฟต์แวร์ที่ทรงพลัง
2. การออกแบบระบบเขียนแบบทั่วไป
1. เพิ่มเครื่องมือ MicrosoftDrawOLE ให้กับ Windows:
(1) แก้ไข win.ini:
[การฝัง]
MSDraw=Microsoft Drawing,Microsoft Drawing,c:/yzgraph/msdraw.exe,รูปภาพ
(2)สร้าง MSDRAW.REG:
ลงทะเบียน
HEKY_CLASSES_ROOT/MSDraw=Microsoft Drawing
HKEY_CLASSES_ROOT/MSDraw/โปรโตคอล/StdFileEditing/server=c:/yzgraph/msdraw.Exe
(3) เรียกใช้ REGEDIT.EXEMSDRAW.REG และ "ข้อมูลใน c:/yzgraph/msdraw.exe" ได้รับการบันทึกในฐานข้อมูลเข้าสู่ระบบเรียบร้อยแล้ว" จะปรากฏบนหน้าจอ
(4) คัดลอก MSDRAW.EXE และ MS-DRAW.HLP จากไดเรกทอรีย่อย /windows/msapps/msdraw ใน Microsoft Word 5.0 เวอร์ชันภาษาจีน ไปยังไดเรกทอรีย่อย c:/yzgraph
2. สร้าง FORM1 ใน VB: เริ่ม VisualBASIC3.0 และเลือกเมนู File-NEWProject
3. สร้างวัตถุสามปุ่มบน FORM1: "บันทึก", "พิมพ์" และ "ออก";
4. สร้างวัตถุ OLE2 บน FORM1: เลือกตัวควบคุม OLE2.0 ในหน้าต่างกล่องเครื่องมือ เลื่อนเมาส์ไปที่หน้าต่าง Forml กดเมาส์ซ้ายขณะเลื่อนเคอร์เซอร์ของเมาส์ แล้วลากสี่เหลี่ยมเล็กๆ ออกมา ปล่อยเมาส์ซ้าย ในเวลานี้ หน้าต่างโต้ตอบ "แทรกวัตถุ" จะปรากฏขึ้นบนหน้าจอ เลือก CreateNew-Microsoft Drawing-ok
5. เพิ่มการบันทึกกราฟิกและการควบคุมการพิมพ์ (mhoutbx.vbx) ใน Visual Basic 3.0:
mhoutbx.vbx เป็นตัวควบคุม VBX สากลพร้อมจอแสดงผลกราฟิกและฟังก์ชันการพิมพ์ที่ MicroHelp มอบให้ เลือกเมนู File-AddFile ใน VisualBasic3.0 และเลือก mhoutbx.bx;
ขนาดอัตโนมัติ=-1'True
EraseForRead=-1'True
6. สร้างวัตถุ mhoutbx สำหรับการบันทึกและการพิมพ์กราฟิกบน FORM1 (ใช้สำหรับ MicrosoftDraw
การบันทึกผลลัพธ์การพิมพ์)
7. ทำให้ FORM1 อยู่ที่ "ด้านบน" เสมอ (นั่นคือ หน้าต่างอื่นไม่ครอบคลุม):
Global.bas:
GlobalConstSWP_MOVE=2
GlobalConstSWP_NOSIZE=1
GlobalConstFLAGS=SWP_MOVEOrSWP_NOSIZE
GlobalConstHWND_TOPMOST=-1
GlobalConstHWND_NOTOPMOST=-2
ประกาศ FunctionSetWindowsPosLib "ผู้ใช้" (ByValh, ByValhb, ByValX,
ByValy, ByValcx, ByValcy, By-Valf) AsInteger
ประกาศ FunctionGetSystemMetricsLib "ผู้ใช้" (ByValnIn-dex)
GlobalConst
ไม่มี=0&
GlobalConstWM_SYCOMMAND=&H112
GlobalConstWM_LBUTTONDBLCLK=&H203
GlobalConstSC_CLOSE=&HF06O
GlobalConstWM-CLOSE=&H10
GlobalConstWM_GETMINMAXINFO=&H24
ประกาศ FunctionFindWindowsLib "ผู้ใช้" (ByVallpClassNameAsAny,
โดยVallpWindowsNameAsAny)
เป็นจำนวนเต็ม
ประกาศ Functionsendmessage & Lib "ผู้ใช้" (ByValhWnd, ByValwmsg,
ByValwparam,ByValiparamAsLong)
GlobalConstSW_SHOWMAXIMIZED=3
ประกาศ FunctionShowWindowsLib "ผู้ใช้" (ByValhWndAsInteger,
ByValnCmdShowAsInteger)AsInteger
8. เปิดใช้งาน MSDraw และขยายให้ใหญ่สุด:
SubForm_Load()
Dimrc,msdraw_h,Ipclass$,lpcaption$
form1,Width=บานหน้าต่าง13D1.Width
rc=SetWindowPos(form1.hWnd,HWND
_TOPMOST,0,0,0,0,แฟล็ก)
rc=ส่งข้อความ(form1,OLE1.hWnd,WM
_LBUTTONDBLCLK,0,ไม่มี)
AppActivate "MicrosoftDraw-วาด"
SendKeys"F",จริง
SendKeys"{LEFT}X" จริง
form1.แสดง
สิ้นสุดย่อย
9. บันทึกกราฟิก:
SubPanel3D1_คลิก()
a$="c:/test.wmf"
AppActivate "MicrosoftDraw-วาด"
SendKeys"FU" จริง
FORM1.MhOutbox1.MetaFileName=a$
FORM1.MhOutbox1.SaveMetaFile=True
สิ้นสุดย่อย
10. การพิมพ์กราฟิก:
SubPanel3D2_คลิก()
AppActivate "MicrosoftDraw-วาด"
SendKeys"FU" จริง
MhOutboxl.OutContext=1
MhOutbox.EndPage=จริง
สิ้นสุดย่อย
11. ออก:
SubPanel3D3_คลิก()
ยกเลิกการโหลดแบบฟอร์ม1
จบ
สิ้นสุดย่อย ->