|
Windows中的画笔,恐怕读者不会不知道吧?其绘图功能虽无法与专业的绘图软件相提并论,但也马马虎虎能够应付用户日常制图的需求。其实,利用Visual Basic我们也能开发出如“画笔”一样的软件,甚至比它更完善,更出色。
我就此制作一例,希望与各位VB的爱好者们交流VB编程的心得与体会。 程序界面制作篇。
一、启动VB,创建一个“VB企业版控件”文件。
二、添加窗体:一个MDI窗体(MDIPaint)、一个子窗体:绘图操作区(Paintwin)、七个自由窗体,包括一个版本信息窗体(About1)、一个画笔大小调节窗体(BrushSroll)、一个启动界面(Cover)、一个滤镜信息框(Filterwin)、一个帮助窗体(Helpwin)、一个登陆提示框(password)、一个文本输入框(Textpaint)。设置MDIPaint为启动窗体。
三、 在窗体中添加控件
1. 在MDIPaint窗体中先制作菜单:就像你见到的所有Windows程序一样,包括:文件(新建、打开、清屏、存储、另存为、关闭、打印、退出)、编辑(复制、粘贴等)、变换(垂直、水平、旋转、缩放)、滤镜(浮雕)、工具栏(隐藏、显示)、视图(颜色、字体、画笔、设置桌面)、帮助(版本信息)……并配置快捷键。然后,设置一个通用对话框控件(Commondialog1)、两个图片列表控件(ImageList1&ImageList2)、两个工具栏(Toolbar1&Toolbar2)、一个状态条(StatusBar1)。抓取图标,将常用的工具栏中的图标加入到ImageList1中,制作各种图像代表图标14个加入到ImageList2中,将图片列表控件与工具栏连在一起。在状态条中加入时间、X轴和Y轴坐标显示。完成界面如图2所示。其中,Toolbar1是工具栏,类似于Word中位于菜单栏下的工具栏快捷键,可根据其所含图标属性设定功能。Toolbar2是图像栏,是绘制固定图像的快捷键,有直线、普通矩形、填充圆等,其填充方式均按图标属性设置。
2. 在Paintwin窗体中,主要包括有两个图片框(Picture1& Pictureback),将Picture1嵌套在Pictureback中以实现能够显示任意尺寸的画面,添加两个滚动条(imagescroll1& imagescroll2)配合察看大尺寸图片。另外,还需要一个标签(forecolor1)显示前景色,一个标签(backcolor1)显示背景色,一个按钮交换前景色与背景色,一个复选框(toolbar2c1)切换MDIPaint中的图像栏与工具栏。完成界面如图2所示。
3. BrushSroll窗体主要功能是通过滚动条滑动任意调节画笔的大小,包括一个滚动条(BrushHScroll1)、画笔数值显示区(blabel2)及确认、取消按钮。
4. Cover窗体装入启动画面(施展你的艺术才华吧),启动时间可自行设定。例如:
技巧篇
在编程中掌握重要方法,灵活利用技巧,往往能事半功倍。
一、像“画笔”一样,在绘图区的任意地方输入文本
几乎所有的绘图软件都提供了文字输入的功能,有的(如Photoshop)甚至能够做一些简单的文本编辑的工作。此程序也实现了这一特定功能。首先,设置Commondialog1和Picture1关于字体的所有属性,如:“Picture1.FontName = CommonDialog1.FontName”。通常“新手上路”的朋友会遇到:当执行程序时,会出现一个信息框:“控制面板中未安装字体”,解决它必须首先声明两个变量:Screenfonts=&H1、Printerfonts=&H2。并写出如下代码:“CommonDialog1.Flags = Screenfonts + Printerfonts”。同时在VB的属性窗口中设置Flags的值为1。接下来需要完成在Picture1中单击左键的那个位置输入文本这一功能,因此需要得到单击左键处的坐标,即在Picture1_Click()中将startx、satrty的值传给CurrentX、CurrentY。这样,问题就解决了。
二、灵活运用PaintPicture
用PaintPicture方法来实现图像的翻转,比较容易(需要API——StretchBlt的支持)。其语法规则为:object.PaintPicture Picture, x1, y1, width1, height1, x2, y2, width2, height2, (opcode)。只要熟练掌握其中变量的使用,那么图像变换任你选择。
以下是几个简单变换的例子:
水平翻转:Picture1.PaintPicture Picture1.Picture, Picture1.ScaleWidth, 0, -1 * Picture1.ScaleWidth, Picture1.ScaleHeight 垂直翻转:Picture1.PaintPicture Picture1.Picture, 0, Picture1.ScaleHeight, Picture1.ScaleWidth, -1 * Picture1.ScaleHeight
上一篇:VB中访问API函数之防错技巧
下一篇:浅谈Excel 的VB编程
|