1. OLE 기술 소개
OLE 및 DDE는 Windows 응용 프로그램 간의 상호 통신을 지원하는 메커니즘입니다. OLE 기술은 이미지, 차트, 데이터베이스, 사운드, 텍스트 등을 사용하여 복합 개체(복합 문서라고도 함)를 형성하는 "개체"를 통해 Windows 응용 프로그램을 통합합니다. OLE 기술은 복합 문서에 연결된 개체나 포함된 개체를 구현하기 위한 프로토콜 집합입니다. 이 기술은 1988년 Aldus에 의해 처음 제안되었으며 나중에 Microsoft에 의해 Windows에 도입되었습니다. OLE를 사용하면 응용 프로그램은 다른 응용 프로그램과 협력하여 다양한 유형의 개체가 포함된 복합 문서를 생성할 수 있으며, 문서에 포함된 개체는 사용자가 쉽게 조작할 수 있습니다.
OLE 호출을 지원하는 Windows 소프트웨어에는 Windows에 등록 정보가 있습니다. WIN.INI의 [embedding] 섹션 내용을 확인하여 Windows에 포함되어 호출할 수 있는 OLE 개체를 알아보세요. Paintbrush(PBRUSH.EXE), 통계 그래프(MicrosoftGraph), Object Packager(PACKGER.EXE) 및 Recorder(SOUNDREC.EXE)는 Windows 환경에서 일반적으로 사용되는 OLE 임베디드 프로그램입니다.
개체를 입력합니다.
Windows 환경의 대부분의 개발 도구(예: C, C++, PASCAL, VisualBasic3.0, CA-Realizer, FoxPROforWindows, VisualFoxProforWindows 등)는 대부분 OLE 개체를 호출하는 기능을 갖춘 응용 프로그램 개발을 지원합니다. 0 개발 OLE 호출 프로그램이 더 쉽습니다.
Windows 환경에서 OLE 기술을 사용하여 애플리케이션을 개발하면 다음과 같은 많은 이점이 있습니다.
(1) 소프트웨어 개발 효율성 향상: OLE를 다른 WINDOWS 응용 프로그램에 내장함으로써 응용 프로그램 프로그래머가 수행하는 소프트웨어 개발 작업은 실제로 소프트웨어 기능을 하나씩 개발하는 것보다 쉬운 소프트웨어 통합(또는 "소프트웨어 조합")이 됩니다. 훨씬 빨라지고 응용 소프트웨어의 개발 주기가 크게 단축됩니다.
(2) 안정적이고 신뢰할 수 있는 성능: OLE 임베디드 개체 프로그램은 엄격한 테스트를 거친 상용 소프트웨어이므로 "결합된" 소프트웨어는 "결합된 프로세스" 부분에 대해서만 엄격하게 테스트하면 됩니다(테스트 작업량이 상대적으로 큼). 상대적으로 작음) 안정적이고 신뢰할 수 있는 성능을 갖춘 고품질 소프트웨어가 될 수 있습니다.
(3) 완전한 기능: OLE는 다른 WINDOWS 응용 프로그램에 내장되어 있으며, 다른 응용 프로그램의 데이터를 "삽입"할 뿐만 아니라 다른 응용 프로그램의 기능도 "삽입"합니다. 모든 WINDOWSOLE 내장 개체는 응용 프로그램 소프트웨어에 "내장"될 수 있습니다. 예를 들어 Word, Excel, Mail, Microsoft Graph 등을 사용하여 워드 프로세싱, 전자 보고서, 이메일 및 기타 작업을 포함한 포괄적인 사무 자동화 시스템 소프트웨어를 구축할 수 있습니다. 통계 그래픽;
(4) 개발자는 더 이상 프로그래밍 전문가가 될 필요가 없습니다. Visual Basic 3.0은 OLE2.0 호출 기능을 제공하므로 일반 소프트웨어 개발자는 Windows OLE 개체를 호출하는 응용 프로그램을 개발할 수 있습니다.
Windows용 Visual Basic(이하 VB)은 이벤트 기반 메커니즘, 시각적 인터페이스 디자인 및 통합 개발을 채택한 Windows용 고급 개발 시스템이며, VB는 DDE 및 OLE 프로그램 개발 기능도 제공합니다. VB는 주니어 프로그래머와 시니어 프로그래머 모두가 강력한 응용 프로그램 소프트웨어를 작성하는 데 적합합니다.
2. 일반 도면 시스템 설계
1. Windows에 MicrosoftDrawOLE 도구를 추가합니다.
(1) win.ini 수정:
[임베딩]
MSDraw=Microsoft드로잉,Microsoft드로잉,c:/yzgraph/msdraw.exe,그림
(2) MSDRAW.REG 생성:
등록
HEKY_CLASSES_ROOT/MSDraw=마이크로소프트드로잉
HKEY_CLASSES_ROOT/MSDraw/프로토콜/StdFileEditing/서버=c:/yzgraph/msdraw.Exe
(3) REGEDIT.EXEMSDRAW.REG를 실행하면 "c:/yzgraph/msdraw.exe의 정보가 로그인 데이터베이스에 성공적으로 기록되었습니다."라는 메시지가 화면에 나타납니다.
(4) Microsoft Word 5.0 중국어 버전의 /windows/msapps/msdraw 하위 디렉터리에 있는 MSDRAW.EXE 및 MS-DRAW.HLP를 c:/yzgraph 하위 디렉터리로 복사합니다.
2. VB에서 FORM1을 생성합니다. VisualBASIC3.0을 시작하고 File-NEWProject 메뉴를 선택합니다.
3. FORM1에 "저장", "인쇄" 및 "종료"라는 세 개의 버튼 개체를 만듭니다.
4. FORM1에 OLE2 개체 만들기: 도구 상자 창에서 OLE2.0 컨트롤을 선택하고 마우스를 Forml 창으로 이동한 다음 마우스 왼쪽 버튼을 누른 채 마우스 커서를 이동하고 작은 직사각형을 끌어냅니다. 이때 마우스 왼쪽 버튼을 놓으면 "개체 삽입" 대화 상자가 화면에 나타납니다. CreateNew-Microsoft Drawing-ok를 선택하면 Microsoft Drawing이 시작되고 종료됩니다.
5. Visual Basic 3.0에 그래픽 저장 및 인쇄 컨트롤(mhoutbx.vbx)을 추가합니다.
mhoutbx.vbx는 MicroHelp에서 제공하는 그래픽 표시 및 인쇄 기능을 갖춘 범용 VBX 컨트롤입니다. VisualBasic3.0에서 File-AddFile 메뉴를 선택하고 mhoutbx.bx를 선택합니다.
자동 크기=-1'True
EraseForRead=-1'True
6. FORM1에 그래픽을 저장하고 인쇄하기 위한 mhoutbx 개체를 만듭니다(MicrosoftDraw에 사용됨).
결과 저장, 인쇄);
7. FORM1을 항상 "맨 위"(즉, 다른 창에 가려지지 않도록)로 만듭니다.
글로벌.bas:
GlobalConstSWP_MOVE=2
GlobalConstSWP_NOSIZE=1
GlobalConstFLAGS=SWP_MOVEOrSWP_NOSIZE
GlobalConstHWND_TOPMOST=-1
GlobalConstHWND_NOTOPMOST=-2
DeclareFunctionSetWindowsPosLib"사용자"(ByValh,ByValhb,ByValX,
ByValy,ByValcx,ByValcy,By-Valf)AsInteger
DeclareFunctionGetSystemMetricsLib"사용자"(ByValnIn-dex)
글로벌콘스트
NILL=0&
GlobalConstWM_SYSCOMMAND=&H112
GlobalConstWM_LBUTTONDBLCLK=&H203
GlobalConstSC_CLOSE=&HF06O
GlobalConstWM-CLOSE=&H10
GlobalConstWM_GETMINMAXINFO=&H24
DeclareFunctionFindWindowsLib"사용자"(ByVallpClassNameAsAny,
ByVallpWindowsNameAsAny)
정수로
DeclareFunctionsendmessage&Lib"사용자"(ByValhWnd,ByValwmsg,
ByValwparam, ByValiparamAsLong)
GlobalConstSW_SHOWMAXIMIZED=3
DeclareFunctionShowWindowsLib"사용자"(ByValhWndAsInteger,
ByValnCmdShowAsInteger)AsInteger
8. MSDraw를 활성화하고 최대화합니다.
하위양식_로드()
Dimrc,msdraw_h,Ipclass$,lpcaption$
form1,너비=Pane13D1.너비
rc=SetWindowPos(form1.hWnd,HWND
_TOPMOST,0,0,0,0,플래그)
rc=전송메시지(form1,OLE1.hWnd,WM
_LBUTTONDBLCLK,0,NILL)
AppActivate"MicrosoftDraw-드로잉"
SendKeys"F", 참
SendKeys"{LEFT}X",참
form1.표시
EndSub
9. 그래픽 저장:
SubPanel3D1_Click()
a$="c:/test.wmf"
AppActivate"MicrosoftDraw-드로잉"
SendKeys"FU", 참
FORM1.MhOutbox1.MetaFileName=a$
FORM1.MhOutbox1.SaveMetaFile=참
EndSub
10. 그래픽 인쇄:
SubPanel3D2_Click()
AppActivate"MicrosoftDraw-드로잉"
SendKeys"FU", 참
MhOutboxl.OutContext=1
MhOutbox.EndPage=참
EndSub
11. 출구:
SubPanel3D3_Click()
언로드폼1
끝
EndSub->