1. OLE テクノロジーの概要
OLE と DDE は、Windows アプリケーション間の相互通信をサポートするメカニズムです。 OLE テクノロジは、画像、チャート、データベース、サウンド、テキストなどを使用して複合オブジェクト (複合ドキュメントとも呼ばれます) を形成する「オブジェクト」を通じて Windows アプリケーションを統合します。 OLE テクノロジは、複合ドキュメントにリンクされたオブジェクトまたは埋め込みオブジェクトを実装するためのプロトコルのセットです。このテクノロジは 1988 年に Aldus によって最初に提案され、その後 Microsoft によって Windows に導入されました。 OLE を使用すると、アプリケーションは他のアプリケーションと連携して、さまざまな種類のオブジェクトを含む複合ドキュメントを作成でき、ドキュメントに含まれるオブジェクトをユーザーが簡単に操作できます。
OLE 呼び出しをサポートする Windows ソフトウェアには、Windows に登録情報が含まれており、WIN.INI の [embedding] セクションの内容を確認して、どの OLE オブジェクトが Windows に含まれており、呼び出すことができるかを確認してください。ペイントブラシ (PBRUSH.EXE)、統計グラフ (MicrosoftGraph)、オブジェクト パッケージャ (PACKGER.EXE)、およびレコーダー (SOUNDREC.EXE) は、Windows 環境で一般的に使用される OLE 組み込みプログラムです。
オブジェクトを入力します。
Windows 環境のほとんどの開発ツール (C、C++、PASCAL、VisualBasic3.0、CA-Realizer、FoxPRoforWindows、VisualFoxProforWindows など) は、主に OLE オブジェクトを呼び出す機能を備えたアプリケーションの開発をサポートしています。 0 開発 OLE 呼び出しプログラムの方が簡単です。
Windows 環境で OLE テクノロジを使用してアプリケーションを開発することには、多くの利点があります。
(1) ソフトウェア開発効率の向上: OLE を他の WINDOWS アプリケーションに組み込むことにより、アプリケーション プログラマが行うソフトウェア開発作業は実際にはソフトウェアの統合 (または「ソフトウェアの組み合わせ」) となり、ソフトウェアの機能を 1 つずつ開発するよりも容易になります。大幅に高速化され、アプリケーション ソフトウェアの開発サイクルが大幅に短縮されます。
(2) 安定した信頼性の高いパフォーマンス:OLE 組み込みオブジェクトプログラムは厳密にテストされた商用ソフトウェアであるため、「結合」ソフトウェアは「結合処理」部分のみを厳密にテストする必要があります(テストの負荷は比較的小さい) )、安定した信頼性の高いパフォーマンスを備えた高品質のソフトウェアになる可能性があります。
(3) 完全な機能: OLE は他の WINDOWS アプリケーションに組み込まれており、他のアプリケーションのデータを「埋め込む」だけでなく、他のアプリケーションの機能も「埋め込み」ます。すべての WINDOWSOLE 埋め込みオブジェクトは、アプリケーション ソフトウェアに「埋め込む」ことができます。たとえば、Word、Excel、Mail、Microsoft Graph などを使用して、ワード プロセッサ、電子レポート、電子メール、電子レポートなどの総合的な OA システム ソフトウェアを構築できます。統計グラフィックス。
(4) 開発者はプログラミングの専門家である必要がなくなりました。Visual Basic 3.0 は OLE2.0 呼び出し機能を提供し、これにより OLE 呼び出しの困難さが大幅に軽減され、一般のソフトウェア開発者は Windows OLE オブジェクトを呼び出すアプリケーションを開発できます。
Visual Basic for Windows 3.0 (以下、VB) は、イベント駆動メカニズム、ビジュアル インターフェイス設計を採用し、統合開発、デバッグ、コンパイル環境を備えた Windows 用の高度な開発システムです。また、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 を、中国語版 Microsoft Word 5.0 の /windows/msapps/msdraw サブディレクトリから c:/yzgraph サブディレクトリにコピーします。
2. VB で FORM1 を作成します。VisualBASIC3.0 を起動し、[ファイル] - [NEWProject] メニューを選択します。
3. FORM1 に「保存」、「印刷」、「終了」の 3 つのボタン オブジェクトを作成します。
4. FORM1 上に OLE2 オブジェクトを作成します。ツールボックス ウィンドウで OLE2.0 コントロールを選択し、マウスを Form1 ウィンドウに移動し、マウス カーソルを移動しながら左マウスを押して、小さな四角形をドラッグします。この時点で、「オブジェクトの挿入」ダイアログ ウィンドウが画面に表示されます。この時点で、MicrosoftDrawing が起動し、MicrosoftDrawing が終了します。
5. Visual Basic 3.0 にグラフィック保存および印刷コントロール (mhoutbx.vbx) を追加します。
mhoutbx.vbx は、MicroHelp が提供するグラフィック表示および印刷機能を備えたユニバーサル VBX コントロールです。 VisualBasic3.0 で [ファイル] - [ファイルの追加] メニューを選択し、mhoutbx.bx を選択します。
AutoSize=-1'True
EraseForRead=-1'True
6. FORM1 でグラフィックスを保存および印刷するための mhoutbx オブジェクトを作成します (MicrosoftDraw に使用されます)。
結果の保存、印刷);
7. FORM1 を常に「一番上」にします (つまり、他のウィンドウに覆われないようにします)。
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)
グローバルコンスト
NILL=0&
GlobalConstWM_SYSCOMMAND=&H112
GlobalConstWM_LBUTTONDBLCLK=&H203
GlobalConstSC_CLOSE=&HF06O
GlobalConstWM-CLOSE=&H10
GlobalConstWM_GETMINMAXINFO=&H24
DeclareFunctionFindWindowsLib"User"(ByVallpClassNameAsAny,
ByVallpWindowsNameAsAny)
整数として
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,NILL)
アプリ「MicrosoftDraw-Drawing」を起動する
SendKeys"F"、True
SendKeys"{LEFT}X"、True
form1.表示
EndSub
9. グラフィックの保存:
SubPanel3D1_Click()
a$="c:/test.wmf"
アプリ「MicrosoftDraw-Drawing」を起動する
送信キー「FU」、True
FORM1.MhOutbox1.MetaFileName=a$
FORM1.MhOutbox1.SaveMetaFile=True
EndSub
10.グラフィック印刷:
SubPanel3D2_Click()
アプリ「MicrosoftDraw-Drawing」を起動する
送信キー「FU」、True
MhOutboxl.OutContext=1
MhOutbox.EndPage=True
EndSub
11.終了:
SubPanel3D3_Click()
アンロードフォーム1
終わり
EndSub->