vb视频教程

时间:2024-11-23 16:03:32编辑:阿奇

编写快速高效的VB程序

编写快速高效的Windows程序是我们的实际需要。当前越来越多的专业和非专业编程人员都倾向于用VB来编写一些Windows下的应用软件。但不可否认:VB所写的应用软件由于不是真编译代码,逊色于用C++和后起之秀Delphi编写的应用程序。以下参考有关资料并结合日常的使用经验,来谈谈如何在程度上弥补VB的这些不足,从而写出更加有效的Windows程序。提高Visual Basic应用程序的速度主要有以下几个途径

  将窗口预先调入,隐藏在后面,然后在需要的时候显示。如果你的应用软件涉及几个比较复杂的窗口,那么在程序一开始运行时就将它们全部以Load方法调入,然后将不需要马上显示的窗口用Hide方法隐藏起来,在需要显示的时候才用Show方法显示。

  将图形以BMP形式存盘。BMP格式的图形是Windows缺省的图片格式,Windows可以直接处理它们,而不需要进行过多的转化。

  将有关的调试程序放在单独的模块中,利用DLL动态链接库。如果可能的话,调用一些Windows提供的DLL库函数,这些函数在内存中只会有一个实例,因而在重复调用时,能提高响应速度。而且调用DLL库函数,还能在一定程度上缩短代码长度。

  尽量使用Integer和Long这两种变量类型来代替Single、Double和Currency变量类型。使用整型变量操作要比用浮点变量快得多,因而只要所操作的数不超过范围,就应该尽量使用Integer和Long变量类型。

  在对象的属性设置中多使用缓冲变量。一些针对对象显示属性的直接操作,应该尽量使用缓冲变量,这样可以提高运行和显示的速度。比如文本框内的文本,就可以先读到字符串变量中,再一次性送入Text属性。

  在不需要的时候,要尽可能地用Unload方法把控件或窗口卸载掉。窗口是较为耗费资源的,所以当一个窗口已经不需要的时候,可以用Unload方法将其撤出内存,释放出所占用的资源。同样,对于耗费资源的控件也可以用Unload方法。

  尽量使用局部变量,只在需要的时候使用全局变量。因为VB要始终保留着这些全局变量,而局部变量则在退出过程时就释放了。


VB编程的必备技巧

对编程者来说,VB很容易上手,但要深入、灵活地驾驭它还要下一番功夫。笔者在这里介绍几个较为典型的编程技巧,希望能对广大VB爱好者有所帮助。

一.怎样创建自定义的光标

1.当在设计一个应用程序时,Visual Basic允许程序员将许多控件的MousePointer属性设计成12个预先定义好的鼠标光标之一。然而,有些程序员或许会希望显示一个预定义形状之外的光标。本文说明如何创建一个不同的鼠标指针(光标),包括为一个没有MousePointer属性的控件创建光标。

要在Visual Basic应用程序中将光标(鼠标指针)改变成个不同的形状,可以添加代码来改变希望监视的控件的MouseMove和DragOver事件。

MouseMove事件所包含的代码用于触发该控件的Drag方法。当鼠标在被选中的控件上移动的时候,轮流显示新的鼠标指针。当鼠标指针离开该控件时,则DragOver事件被触发。在Visual Basic程序中,可以重新复位此Drag属性,以便以前的鼠标指针能够被再次显示出来。

2.下面的样例程序实现当鼠标指针移动到一个文件列表框控件上时,将其改变成不同的形状。

首先采用缺省的方法建立Form1。在Form1上添加一个文件列表框控件,采用缺省的方法建立File1。将File1控件的DragIcon属性设置为所选择的.ICO文件。

将如下代码添加到File1的MouseMove事件中:

Private Sub File1-MouseMove(ButtonAs
Integer, Shift As Integer, X As Single, Y As Single)
File1.Drag 1 ''icon on
End Sub
---- 将如下代码添加到Form1的DragOver事件中:
Private Sub Form-DragOver(Source As Control,
X As Single, Y As Single, State As Integer)
File1.Drag 0 ′icon off
End Sub
按下F5功能键执行此程序。得到的运行结果是:将鼠标指针移动到该文件列表框控件上时,程序将把所选中的.ICO文件作为缺省的鼠标光标;将鼠标指针离开该控件时,光标则会自动恢复为缺省的形状。

二.怎样在窗体上点鼠标右键产生一个弹出式选单(PopUp Menu)?

大家都知道,在Windows95/98/2000的桌面和许多流行软件的视窗中,当我们点鼠标右键时,会在鼠标的当前位置弹出一个快捷选单。许多爱好编程的朋友是不是也希望能在自己的程序里有类似的功能呢?其实,这并不困难。笔者经过一番努力,在VB下找出一个通用的方法,供大家分享。

要实现上述功能,需分两个步骤:

1. 利用VB的选单我器(Menu Editor)我你希望弹出的选单及子选单,注意,要将选单的Visible属性设置为:False。

2. 在窗体(Form1)的MouseDown事件中编写程序,来激发我好的选单,假设选单名为PopMenu,程序源码如下:

Private Sub Form-MouseDown
(Button As Integer, Shift As Integer,
X As Single, Y As Single)
If Button = vbRightButton Then
PopMenu.Visible = True
PopupMenu PopMenu
End If
End Sub
上述方法是针对窗体的,我们也可以针对任意控件,用鼠标右键点击控件时,也弹出一个快捷选单。方法也很简单,只要把上述代码放到相应控件的MouseDown事件中,就可以了。

三.怎样动态地在窗体上判断某区域内是否有控件存在?

在笔者的一个小程序中,想在窗体的某个区域输出数据,这就要求在这个区域内不能有其他控件存在,那么,怎么才能知道在窗体的某个区域内,是否有控件存在呢?

为了判断在窗体的某个区域中,是否含有控件,我们可以利用以下VB程序来实现:

Function GetControl(x1 As Single, y1 As Single,
x2 as Single, y2 as Single) As Control
Dim Control as Control
For Each Control In Form1
With Control
If (x1 〈= .Left) And (x2 〉= .Left) And _
(y1 〈= .Top) And (y2 〉= .Top) Or _
(x1 〈=.Left + Width) And (x2 〉= .Left + Width) And _
(y1 〈= .Top) And (y2 〉= .Top) Or _
(x1 〈= .Left) And (x2 〉= Left) And _
(y1 〈= .Top + Height) And (y2 〉= .Top + Height) Or _
(x1 〈= . Left + Width) And (x2 〉= .Left + Width) And _
(y1 〈= .Top + Height) And (y2 〉= .Top + Height) Then
Set GetControl = Control
Exit Function
End If End With
Next
Set GetControl = Nothing
End Function
注:(x1, y1)和(x2, y2)分别为选定矩形区域的左上角和右下角点的坐标值。
该程序通过计算窗体上所有控件的四个角的位置来判断控件是否与选定区域相交,并返回相交的控件。


上一篇:内外网隔离

下一篇:没有了