用VisualBasic与MS-Draw开发通用作图软件

玩玩而已处女座

玩玩而已处女座

2016-02-19 19:23

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享用VisualBasic与MS-Draw开发通用作图软件,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。
一、OLE技术介绍
  
  OLE和DDE,是支持Windows应用之间相互通讯的一种机制。OLE技术通过"对象"集成windows应用程序,它采用图象、图表、数据库、声音、文本等构成复合对象(也称复合文档)。OLE技术是在复合文档中实现链接对象或嵌入对象的一组协议,该技术首先由Aldus公司在1988年提出,后被Microsoft公司引进到Windows中。使用OLE,一个应用程序可以和其他应用程序合作,以产生包含有不同种类对象的复合文档,并且文档中所包含的对象易于被用户操作。
  
  支持OLE调用的Windows软件,在Windows中会有注册登记信息,查看WIN.INI中[embedding]节的内容,可知道Windows中包含哪些可以调用的OLE对象。画笔(PBRUSH.EXE)、统计图(MicrosoftGraph)、对象包装程序(PACKGER.EXE)和录音机(SOUNDREC.EXE)是Windows环境下常用的OLE嵌
  入对象。
  
  Windows环境下的大部分开发工具(如C、C 、PASCAL、VisualBasic3.0、CA-Realizer、FoxProforWindows、VisualFoxProforWindows等)大都支持开发具有调用OLE对象能力的应用程序,相比之下,VisualBasic3.0开发OLE调用程序更容易。
  
  Windows环境下采用OLE技术开发应用程序有许多优点:
  
  (1)、提高软件开发效率:通过OLE的嵌入其它WINDOWS应用程序,应用程序员所进行的软件开发工作实际上变成了软件集成(或称"软件组合"),这样就比逐个开发软件功能模块要快得多,应用软件的开发周期大大缩短;
  
  (2)、性能稳定、可靠:由于OLE嵌入对象程序都是经过严格测试过的商品软件,因此,经过"组合"的软件,只要经过对"组合过程"部分进行严格测试(测试的工作量相对来说较小),就能成为性能稳定可靠的高质量软件;
  
  (3)、功能完善:OLE嵌入其它WINDOWS应用程序,不仅"嵌入"了其它应用程序的数据,同时也"嵌入"了其它应用程序的功能。应用软件中能够"嵌入"所有的WINDOWSOLE嵌入对象,例如,你通过Word,Excel,Mail,MicrosoftGraph等建立起一个包含文字处理、电子报表、电子邮件和统计图形的综合性办公自动化系统软件;
  
  (4)、开发人员不再需要是编程专家:VisualBasic3.0中提供了OLE2.0调用功能,大大降低了OLE调用的难度,一般的软件开发人员即可开发出调用WindowsOLE对象的应用程序。
  
  VisualBasicforWindows3.0(以下简称VB)是一个面向Windows的高级开发系统,它采用事件驱动机制、可视化界面设计及集成化的开发、调试、编译环境,VB同时还提供DDE、OLE程序开发功能。VB既适合于初级程序员,又适合于高级程序员编写功能强大的应用软件。
  
  二、通用作图系统的设计
  
  1、在Windows中添加MicrosoftDrawOLE工具:
  
  (1)修改win.ini:
  [embedding]
  MSDraw=MicrosoftDrawing,MicrosoftDrawing,c:yzgraphmsdraw.exe,picture
  
  (2)创建MSDRAW.REG:
  
  REGEDIT
  HEKY_CLASSES_ROOTMSDraw=MicrosoftDrawing
  HKEY_CLASSES_ROOTMSDrawprotocolStdFileEditingserver=c:yzgraphmsdraw.Exe
  
  (3)运行REGEDIT.EXEMSDRAW.REG,屏幕上会出现"c:yzgraphmsdraw.exe"中的信息已成功地登录在登录数据库中"。
  
  (4)从MicrosoftWord5.0中文版中windowsmsappsmsdraw子目录中拷贝MSDRAW.EXE、MS-DRAW.HLP至c:yzgraph子目录下。
  
  2、在VB中创建一个FORM1:启动VisualBASIC3.0,选File-NEWProject菜单;
  
  3、在FORM1上创建"存盘""打印""退出"三个按钮对象;
  
  4、在FORM1上创建一个OLE2对象:在Toolbox窗口选OLE2.0控件,移动鼠标至Forml窗口上,按下左鼠标同时移动鼠标光标拖出一个小小的矩形。松开左鼠标,这时,屏幕上会出现"insertobject"对话窗口,选择CreateNew-MicrosoftDrawing-ok,这时MicrosoftDrawing就会启动,退出MicrosoftDrawing;
  
  5、在VisualBasic3.0中增加一个图形存盘及打印控件(mhoutbx.vbx):
  
  mhoutbx.vbx是MicroHelp公司提供的具有图形显示打印功能的通用VBX控件。在VisualBasic3.0中选File-AddFile菜单,选中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)
  GlobalConst
  NILL=0&
  GlobalConstWM_SYSCOMMAND=&H112
  GlobalConstWM_LBUTTONDBLCLK=&H203
  GlobalConstSC_CLOSE=&HF06O
  GlobalConstWM-CLOSE=&H10
  GlobalConstWM_GETMINMAXINFO=&H24
  DeclareFunctionFindWindowsLib"User"(ByVallpClassNameAsAny,
  ByVallpWindowsNameAsAny)
  AsInteger
  
  DeclareFunctionsendmessage&Lib"user"(ByValhWnd,ByValwmsg,
  ByValwparam,ByValIparamAsLong)
  
  GlobalConstSW_SHOWMAXIMIZED=3
  
  DeclareFunctionShowWindowsLib"User"(ByValhWndAsInteger,
  ByValnCmdShowAsInteger)AsInteger
  
  8、激活MSDraw,并使其最大化:
  
  SubForm_Load()
  Dimrc,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"MicrosoftDraw-绘图"
  SendKeys"F",True
  SendKeys"{LEFT}X",True
  form1.Show
  EndSub
  
  9、图形存盘:
  
  SubPanel3D1_Click()
  a$="c:est.wmf"
  AppActivate"MicrosoftDraw-绘图"
  SendKeys"FU",True
  FORM1.MhOutbox1.MetaFileName=a$
  FORM1.MhOutbox1.SaveMetaFile=True
  EndSub
  
  10、图形打印:
  
  SubPanel3D2_Click()
  AppActivate"MicrosoftDraw-绘图"
  SendKeys"FU",True
  MhOutboxl.OutContext=1
  MhOutbox.EndPage=True
  EndSub
  11、退出:
  SubPanel3D3_Click()
  Unloadform1
  End
  EndSub->

展开更多 50%)
分享

猜你喜欢

用VisualBasic与MS-Draw开发通用作图软件

编程语言 网络编程
用VisualBasic与MS-Draw开发通用作图软件

用VisualBasic开发绿色软件的探讨

编程语言 网络编程
用VisualBasic开发绿色软件的探讨

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

用VisualBasic开发数据库浏览器

编程语言 网络编程
用VisualBasic开发数据库浏览器

怎样用photoshop软件制作图片

电脑网络
怎样用photoshop软件制作图片

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用定制的GUI开发Java聊天软件

编程语言 网络编程
用定制的GUI开发Java聊天软件

用VB开发CAI软件的小经验

编程语言 网络编程
用VB开发CAI软件的小经验

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

如何在PPT中插入添加公司LOGO

如何在PPT中插入添加公司LOGO

一个MYSQL样例数据库

一个MYSQL样例数据库
下拉加载更多内容 ↓