教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> 编程基地 >> VB >> 用Visual Basic与MS-Draw开发通用作图软件 RSS订阅
用Visual Basic与MS-Draw开发通用作图软件
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
用Visual Basic与MS-Draw开发通用作图软件


南京农业大学信息管理系(210095) 龚建新



一、OLE技术介绍


OLE和DDE,是支持Windows应用之间相互通讯的一种机制。OLE技术通过"对象"集成win dows应用程序,它采用图象、图表、数据库、声音、文本

等构成复合对象(也称复合文档)。 OLE技术是在复合文档中实现链接对象或嵌入对象的一组协议,该技术首先由Aldus公司在1 988年提出,后被

Microsoft公司引进到Windows中。使用OLE,一个应用程序可以和其他应用程序合作,以产生包含有不同种类对象的复合文档,并且文档中所包含

的对象易于被用户操作。


支持OLE调用的Windows软件,在Windows中会有注册登记信息,查看WIN.INI中[embeddi ng]节的内容,可知道Windows中包含哪些可以调用的OLE对象。画笔(PBRUSH.EXE)、统计图 (Microsoft Graph)、对象包装程序(PACKGER.EXE)和录音机(SOUNDREC.EXE)是Windows环境下常用的OLE嵌

入对象。


Windows环境下的大部分开发工具(如C、C++、PASCAL、Visual Basic 3.0、CA-Reali zer、FoxPro for Windows、Visual FoxPro for Windows等)大都支持开发具有调用OLE对象能力的应用程序,相比之下,Visual Basic 3.0开发OLE调用程序更容易。


Windows环境下采用OLE技术开发应用程序有许多优点:


(1)、提高软件开发效率:通过OLE的嵌入其它WINDOWS应用程序,应用程

序员所进行的软件开发工作实际上变成了软件集成(或称"软件组合"),

这样就比逐个开发软件功能模块要快得多,应用软件的开发周期大大缩短;


(2)、性能稳定、可靠:由于OLE嵌入对象程序都是经过严格测试过的商品

软件,因此,经过"组合"的软件,只要经过对"组合过程"部分进行严格测试

(测试的工作量相对来说较小), 就能成为性能稳定可靠的高质量软件;


(3)、功能完善:OLE嵌入其它WINDOWS应用程序,不仅"嵌入"了其它应用程

序的数据,同时也"嵌入"了其它应用程序的功能。应用软件中能够"嵌入

"所有的WINDOWS OLE嵌入对象, 例如,你通过Word,Excel,Mail,Microsoft

Graph等建立起一个包含文字处理、电子报表、电子邮件和统计图形的综

合性办公自动化系统软件;


(4)、开发人员不再需要是编程专家:Visual Basic 3.0中提供了OLE 2.0

调用功能,大大降低了OLE调用的难度,一般的软件开发人员即可开发出调

用Windows OLE对象的应用程序。


Visual Basic for Windows 3.0(以下简称VB)是一个面向Windows的高级

开发系统,它采用事件驱动机制、可视化界面设计及集成化的开发、调试、

编译环境,VB同时还提供DDE 、OLE程序开发功能。VB既适合于初级程序

员,又适合于高级程序员编写功能强大的应用软件。


二、通用作图系统的设计


1、在Windows中添加Microsoft Draw OLE工具:


(1)修改win.ini:

[embedding]

MSDraw=MicrosoftDrawing,MicrosoftDrawing,c:\yzgraph\msdraw.exe,picture


(2)创建MSDRAW.REG:


REGEDIT

HEKY_CLASSES_ROOT\MSDraw=Microsoft Drawing

HKEY_CLASSES_ROOT\MSDraw\protocol\StdFileEditing\server=c:\yzgraph\msdraw. exe


(3)运行REGEDIT.EXE MSDRAW.REG,屏幕上会出现"c:\yzgraph\msdraw.exe

中的信息已成功地登录在登录数据库中"。


(4)从Microsoft Word 5.0中文版中\windows\msapps\msdraw子目录中拷贝

MSDRAW.EXE、MS-DRAW.HLP至c:\yzgraph子目录下。


2、在VB中创建一个FORM1:启动Visual BASIC 3.0,选File-NEW Project菜单;


3、在FORM1上创建"存盘""打印""退出"三个按钮对象;


4、在FORM1上创建一个OLE2对象:在Toolbox窗口选OLE2.0控件,移动鼠标至

Forml窗口上,按下左鼠标同时移动鼠标光标拖出一个小小的矩形。松开左鼠

标,这时,屏幕上会出现" insert object"对话窗口,选择Create New-Microsoft

Drawing-ok,这时Microsoft Drawi ng就会启动,退出Microsoft Drawing;


5、在Visual Basic 3.0中增加一个图形存盘及打印控件(mhoutbx.vbx):



mhoutbx.vbx是MicroHelp公司提供的具有图形显示打印功能的通用VBX控件。

在Visua l Basic 3.0中选File-Add File菜单,选中mhoutbx.bx;


AutoSize =-1 'True


EraseForRead = -1'True


6、在FORM1上创建一个图形存盘及打印的mhoutbx对象(用于Microsoft Draw的

结果存盘、打印输出);


7、使FORM1始终处于"最上层"(即不被其它窗口覆盖):


Global.bas:


Global Const SWP_MOVE=2

Global Const SWP_NOSIZE=1

Global Const FLAGS=SWP_MOVE Or SWP_NOSIZE

Global Const HWND_TOPMOST=-1

Global Const HWND_NOTOPMOST=-2

Declare Function SetWindowsPos Lib"user"(ByVal h%,ByVal hb%,ByVal X%,

ByVal y%,ByVal cx%,ByVal cy%,By-Val f%)As Integer

Declare Function GetSystemMetrics% Lib"user"(ByVal nIn-dex%)

Global Const

NILL=0&

Global Const WM_SYSCOMMAND=&H112

Global Const WM_LBUTTONDBLCLK=&H203

Global Const SC_CLOSE=&HF06O

Global Const WM-CLOSE=&H10

Global Const WM_GETMINMAXINFO=&H24

Declare Function FindWindows Lib "User"(ByVal lpClassName As Any,

ByVal lpW indowsName As Any)

As Integer


Declare Function sendmessage& Lib "user"(ByVal hWnd%,ByVal wmsg%,

ByVal wpa ram%,ByVal Iparam As Long)


Global Const SW_SHOWMAXIMIZED=3


Declare Function ShowWindows Lib "User"(ByVal hWnd As Integer,

ByVal nCmd S how As Integer)As Integer


8、激活MSDraw,并使其最大化:


Sub Form_Load()

Dim rc%,msdraw_h,Ipclass$,lpcaption$

form1,Width=Pane13D1.Width

rc%=SetWindowPos(form1.hWnd,HWND

_TOPMOST,0,0,0,0,Flags)

rc%=sendmessage(form1,OLE1.hWnd,WM

_LBUTTONDBLCLK,0,NILL)

AppActivate"Microsoft Draw-绘图"

SendKeys"%F",True

SendKeys"{LEFT}X",True

form1.Show

End Sub


9、图形存盘:


Sub Panel3D1_Click()

a$="c:\test.wmf"

AppActivate"Microsoft Draw-绘图"

SendKeys "%FU",True

FORM1.MhOutbox1.MetaFileName=a$

FORM1.MhOutbox1.SaveMetaFile=True

End Sub


10、图形打印:


Sub Panel3D2_Click()

AppActivate"Microsoft Draw-绘图"

SendKeys"%FU",True

MhOutboxl.OutContext=1

MhOutbox.EndPage=True

End Sub

11、退出:

Sub Panel3D3_Click()

Unload form1

End

End Sub

来源:upschool.cn
作者:
关键字:用Visual,Basic,MS
发表日期:2006-12-20 15:51:17

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:VB中位图旋转的实现   下一篇:用Visual Basic的Move方法实现动画效果


2009-1-9 4:51:35
本文的相类似文章
  • Visual Basic_美化你的文字
  • VB 关于mscomm控件的两个问题
  • Visual Basic 6中发送邮件的新方法
  • Visual Basic 中字符淡出淡入的实现
  • 用Webbrowser控件MSHTMLCtl清除广告
  • 想不到的VB指针用法{Visual Basic6.0}
  • 病毒知识之MSN病毒家族透视
  • 手工修复被MSN小尾巴破坏的系统
  • “麻布图”巧妙利用MSN地址传播
  • MSN也出尾巴病毒关闭安全软件
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com