1. Введение в технологию OLE
OLE и DDE — это механизмы, поддерживающие взаимную связь между приложениями Windows. Технология OLE интегрирует приложения Windows через «объекты», которые используют изображения, диаграммы, базы данных, звуки, тексты и т. д. для формирования составных объектов (также называемых составными документами). Технология OLE — это набор протоколов для реализации связанных или встроенных объектов в составных документах. Эта технология была впервые предложена Aldus в 1988 году и позже внедрена в Windows компанией Microsoft. Используя OLE, приложение может взаимодействовать с другими приложениями для создания составных документов, содержащих объекты разных типов, а пользователи могут легко манипулировать объектами, содержащимися в документе.
Программное обеспечение Windows, поддерживающее вызовы OLE, будет иметь регистрационную информацию в Windows. Проверьте содержимое раздела [embedding] в WIN.INI, чтобы узнать, какие объекты OLE включены в Windows и могут быть вызваны. Кисть (PBRUSH.EXE), статистический график (MicrosoftGraph), упаковщик объектов (PACKGER.EXE) и средство записи (SOUNDREC.EXE) — это широко используемые встроенные программы OLE в среде Windows.
Введите объект.
Большинство инструментов разработки в среде Windows (таких как C, C++, PASCAL, VisualBasic3.0, CA-Realizer, FoxPROforWindows, VisualFoxProforWindows и т. д.) в основном поддерживают разработку приложений с возможностью вызова OLE-объектов. В отличие от VisualBasic3. 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. Обычные разработчики программного обеспечения могут разрабатывать приложения, вызывающие объекты OLE Windows.
Visual Basic для Windows 3.0 (далее VB) — это усовершенствованная система разработки для Windows. Она использует механизм, управляемый событиями, дизайн визуального интерфейса и интегрированную среду разработки, отладки и компиляции. VB также предоставляет функции разработки программ DDE и OLE. VB подходит как младшим, так и старшим программистам для написания мощного прикладного программного обеспечения.
2. Проектирование системы общего чертежа.
1. Добавьте инструмент MicrosoftDrawOLE в Windows:
(1) Измените win.ini:
[встраивание]
MSDraw=MicrosoftDrawing,MicrosoftDrawing,c:/yzgraph/msdraw.exe,picture
(2) Создайте MSDRAW.REG:
РЕГЕДИТ
HEKY_CLASSES_ROOT/MSDraw=MicrosoftDrawing
HKEY_CLASSES_ROOT/MSDraw/protocol/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 в окне «Панель инструментов», переместите мышь в окно формы, нажмите левую кнопку мыши, перемещая курсор мыши, и вытащите небольшой прямоугольник. Отпустите левую кнопку мыши. В это время на экране появится диалоговое окно «Вставить объект». Выберите CreateNew-MicrosoftDrawing-ok. В это время MicrosoftDrawing запустится и выйдет из MicrosoftDrawing;
5. Добавьте элемент управления сохранением и печатью графики (mhoutbx.vbx) в Visual Basic 3.0:
mhoutbx.vbx — это универсальный элемент управления VBX с функциями графического отображения и печати, предоставляемыми MicroHelp. Выберите меню File-AddFile в VisualBasic3.0 и выберите mhoutbx.bx;
AutoSize=-1'True
EraseForRead=-1'True
6. Создайте объект mhoutbx для сохранения и печати графики на FORM1 (используется для MicrosoftDraw
Сохранение результата, распечатка);
7. Сделать FORM1 всегда «сверху» (т.е. не прикрытым другими окнами):
Глобальный.бас:
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 «пользователь» (ByValnIn-dex)
ГлобалКонст
НОЛЬ=0&
GlobalConstWM_SYSCOMMAND=&H112
GlobalConstWM_LBUTTONDBLCLK=&H203
GlobalConstSC_CLOSE=&HF06O
GlobalConstWM-CLOSE=&H10
GlobalConstWM_GETMINMAXINFO=&H24
DeclareFunctionFindWindowsLib"User"(ByVallpClassNameAsAny,
АвторVallpWindowsNameAsAny)
AsInteger
DeclareFunctionsendmessage&Lib"user"(ByValhWnd,ByValwmsg,
ByValwparam,ByValiparamAsLong)
GlobalConstSW_SHOWMAXIMIZED=3
DeclareFunctionShowWindowsLib"User"(ByValhWndAsInteger,
ByValnCmdShowAsInteger)AsInteger
8. Активируйте MSDraw и разверните его:
Подформа_Загрузка()
Dimrc,msdraw_h,Ipclass$,lpcaption$
form1,Width=Pane13D1.Width
rc=SetWindowPos(form1.hWnd,HWND
_TOPMOST,0,0,0,0,Флаги)
rc=sendmessage(form1,OLE1.hWnd,WM
_LBUTTONDBLCLK,0,НИЛЛ)
Приложение Активировать «MicrosoftDraw-Drawing»
SendKeys"F",True
SendKeys"{LEFT}X",True
форма1.Показать
EndSub
9. Графическое сохранение:
SubPanel3D1_Click()
a$="c:/test.wmf"
Приложение Активируйте «MicrosoftDraw-Drawing»
SendKeys"FU",True
FORM1.MhOutbox1.MetaFileName=a$
FORM1.MhOutbox1.SaveMetaFile=Истина
EndSub
10. Графическая печать:
SubPanel3D2_Click()
Приложение Активировать «MicrosoftDraw-Drawing»
SendKeys"FU",True
MhOutboxl.OutContext=1
MhOutbox.EndPage=Истина
EndSub
11. Выход:
SubPanel3D3_Click()
Выгрузить форму1
Конец
EndSub->