1. Introdução à tecnologia OLE
OLE e DDE são mecanismos que oferecem suporte à comunicação mútua entre aplicativos Windows. A tecnologia OLE integra aplicações Windows através de “objetos”, que utilizam imagens, gráficos, bancos de dados, sons, textos, etc. para formar objetos compostos (também chamados de documentos compostos). A tecnologia OLE é um conjunto de protocolos para implementar objetos vinculados ou incorporados em documentos compostos. Essa tecnologia foi proposta pela primeira vez por Aldus em 1988 e posteriormente introduzida no Windows pela Microsoft. Usando OLE, um aplicativo pode cooperar com outros aplicativos para produzir documentos compostos contendo diferentes tipos de objetos, e os objetos contidos no documento podem ser facilmente manipulados pelos usuários.
O software Windows que suporta chamadas OLE terá informações de registro no Windows Verifique o conteúdo da seção [incorporação] no WIN.INI para saber quais objetos OLE estão incluídos no Windows e podem ser chamados. Paintbrush (PBRUSH.EXE), gráfico estatístico (MicrosoftGraph), empacotador de objetos (PACKGER.EXE) e gravador (SOUNDREC.EXE) são programas incorporados OLE comumente usados no ambiente Windows.
Insira o objeto.
A maioria das ferramentas de desenvolvimento no ambiente Windows (como C, C++, PASCAL, VisualBasic3.0, CA-Realizer, FoxPRoforWindows, VisualFoxProforWindows, etc.) suporta principalmente o desenvolvimento de aplicativos com a capacidade de chamar objetos OLE. 0 desenvolvimento de programas de chamada OLE é mais fácil.
Existem muitas vantagens em desenvolver aplicativos usando tecnologia OLE em ambiente Windows:
(1) Melhorar a eficiência do desenvolvimento de software: Ao incorporar OLE em outros aplicativos WINDOWS, o trabalho de desenvolvimento de software realizado pelos programadores de aplicativos na verdade se torna integração de software (ou "combinação de software"), que é mais fácil do que desenvolver funções de software uma por uma. muito mais rápido e o ciclo de desenvolvimento de software aplicativo é bastante reduzido;
(2) Desempenho estável e confiável: Como os programas de objetos incorporados OLE são softwares comerciais que foram rigorosamente testados, o software "combinado" só precisa ser rigorosamente testado para a parte do "processo combinado" (a carga de trabalho de teste é relativamente grande). é relativamente pequeno), pode se tornar um software de alta qualidade com desempenho estável e confiável;
(3) Funções completas: OLE é incorporado em outros aplicativos WINDOWS, não apenas “incorporando” os dados de outros aplicativos, mas também “incorporando” as funções de outros aplicativos. Todos os objetos incorporados do WINDOWSOLE podem ser "incorporados" no software aplicativo. Por exemplo, você pode usar Word, Excel, Mail, Microsoft Graph, etc. para construir um software de sistema de automação de escritório abrangente, incluindo processamento de texto, relatórios eletrônicos, e-mail e. gráficos estatísticos;
(4) Os desenvolvedores não precisam mais ser especialistas em programação: o Visual Basic 3.0 fornece a função de chamada OLE2.0, que reduz bastante a dificuldade de chamada OLE. Os desenvolvedores de software em geral podem desenvolver aplicativos que chamam objetos OLE do Windows.
Visual Basic para Windows 3.0 (doravante denominado VB) é um sistema de desenvolvimento avançado para Windows. Ele adota mecanismo orientado a eventos, design de interface visual e ambiente integrado de desenvolvimento, depuração e compilação. VB também fornece funções de desenvolvimento de programas DDE e OLE. VB é adequado tanto para programadores juniores quanto para programadores seniores para escrever softwares aplicativos poderosos.
2. Projeto do sistema de desenho geral
1. Adicione a ferramenta MicrosoftDrawOLE ao Windows:
(1) Modifique win.ini:
[incorporação]
MSDraw=MicrosoftDrawing,MicrosoftDrawing,c:/yzgraph/msdraw.exe,imagem
(2) Crie MSDRAW.REG:
REGEDIT
HEKY_CLASSES_ROOT/MSDraw=MicrosoftDrawing
HKEY_CLASSES_ROOT/MSDraw/protocol/StdFileEditing/server=c:/yzgraph/msdraw.Exe
(3) Execute REGEDIT.EXEMSDRAW.REG e "As informações em c:/yzgraph/msdraw.exe" foram registradas com sucesso no banco de dados de login" aparecerá na tela.
(4) Copie MSDRAW.EXE e MS-DRAW.HLP do subdiretório /windows/msapps/msdraw na versão chinesa do Microsoft Word 5.0 para o subdiretório c:/yzgraph.
2. Crie um FORM1 em VB: inicie o VisualBASIC3.0 e selecione o menu File-NEWProject;
3. Crie três objetos botão no FORM1: “Salvar”, “Imprimir” e “Sair”;
4. Crie um objeto OLE2 no FORM1: Selecione o controle OLE2.0 na janela Toolbox, mova o mouse até a janela Forml, pressione o botão esquerdo do mouse enquanto move o cursor do mouse e arraste um pequeno retângulo. Solte o botão esquerdo do mouse. Neste momento, a janela de diálogo "insertobject" aparecerá na tela. Selecione CreateNew-MicrosoftDrawing-ok. Neste momento, o MicrosoftDrawing será iniciado e sairá do MicrosoftDrawing;
5. Adicione um controle de salvamento e impressão de gráficos (mhoutbx.vbx) no Visual Basic 3.0:
mhoutbx.vbx é um controle VBX universal com exibição gráfica e funções de impressão fornecidas pela MicroHelp. Selecione o menu File-AddFile no VisualBasic3.0 e selecione mhoutbx.bx;
AutoSize=-1'Verdadeiro
EraseForRead=-1'Verdadeiro
6. Crie um objeto mhoutbx para salvar e imprimir gráficos no FORM1 (usado para MicrosoftDraw
Salvamento de resultados, impressão);
7. Deixe o FORM1 sempre no “topo” (ou seja, não coberto por outras janelas):
Global.bas:
GlobalConstSWP_MOVE=2
GlobalConstSWP_NOSIZE=1
GlobalConstFLAGS=SWP_MOVEOrSWP_NOSIZE
GlobalConstHWND_TOPMOST=-1
GlobalConstHWND_NOTOPMOST=-2
DeclareFunctionSetWindowsPosLib"usuário"(ByValh,ByValhb,ByValX,
ByValy,ByValcx,ByValcy,By-Valf)AsInteger
DeclareFunctionGetSystemMetricsLib"usuário"(ByValnIn-dex)
GlobalConst
NILO=0&
GlobalConstWM_SYSCOMMAND=&H112
GlobalConstWM_LBUTTONDBLCLK=&H203
GlobalConstSC_CLOSE=&HF06O
GlobalConstWM-CLOSE=&H10
GlobalConstWM_GETMINMAXINFO=&H24
DeclareFunctionFindWindowsLib"Usuário"(ByVallpClassNameAsAny,
PorVallpWindowsNameAsAny)
AsInteger
DeclareFunctionsendmessage&Lib"usuário"(ByValhWnd,ByValwmsg,
PorValwparam,ByValiparamAsLong)
GlobalConstSW_SHOWMAXIMIZED=3
DeclareFunctionShowWindowsLib"Usuário"(ByValhWndAsInteger,
PorValnCmdShowAsInteger)AsInteger
8. Ative o MSDraw e maximize-o:
SubForm_Load()
Dimrc,msdraw_h,Ipclass$,lpcaption$
form1,Largura=Painel13D1.Largura
rc=SetWindowPos(form1.hWnd,HWND
_TOPMOST,0,0,0,0,Sinalizadores)
rc = enviar mensagem (formulário1, OLE1.hWnd, WM
_LBUTTONDBLCLK,0,NILL)
AppActivate"MicrosoftDraw-Drawing"
SendKeys"F",Verdadeiro
SendKeys"{ESQUERDA}X",Verdadeiro
formulário1.Mostrar
Fim Sub
9. Salvamento gráfico:
SubPanel3D1_Click()
a$="c:/teste.wmf"
AppActivate"MicrosoftDraw-Drawing"
SendKeys"FU",Verdadeiro
FORM1.MhOutbox1.MetaFileName=a$
FORM1.MhOutbox1.SaveMetaFile=Verdadeiro
Fim Sub
10. Impressão gráfica:
SubPanel3D2_Click()
AppActivate"MicrosoftDraw-Drawing"
SendKeys"FU",Verdadeiro
MhOutboxl.OutContext=1
MhOutbox.EndPage=Verdadeiro
Fim Sub
11. Saída:
SubPanel3D3_Click()
Descarregarform1
Fim
FimSub->