VB的“问”与“答”
作为一个VB爱好者,一个人在黑暗中摸索太累了。现在,我想把我的一些经验贡献给你,希望它能作为一个有价值的参考(我用的是VISUAL BASIC 50的中文版)。
1。问题:有一个程序包含两个Form,其中Form2的Picture属性是一个BMP位图。下面是在Form1中显示Form2的过程:
form2 show
' delay 2 seconds
time 1 = timer
while timer-time 1 wend
上述过程的目的是在Form1继续执行之前显示form 2的图片两秒钟,但结果是2秒后。为什么画面会延迟?
答:一般来说,画图会比一般指令花费更多的时间,所以画图指令的优先级较低,也就是说,直到其他指令都执行完了,才会轮到画图指令。在上面的Form1程序中,由于另一个耗时2秒的While循环是在Form2 Show之后执行的,所以form 2的图片必须等待2秒才能被绘制。
可以这样解决:
在While循环中添加DoEvents,如下:
form 2 show
' delay 2 seconds
time 1 = timer
While timer 1 deevents
wend
DoEvents用于短时间停止执行,以便执行优先级较低的绘图指令,所以form2
2 .问题:在编写数据库程序时,根据帮助声明变量,如下:
Dim DB As Database
Dim RS As Recordset
结果VB在编译程序时居然说“用户定义类型未定义”。原因是什么?
答:数据库和记录集属于DAO(数据访问对象)模块,但不是VB定义的。因此,在VB识别数据库和记录集之前,必须将DAO的定义包含在“reference”中。操作方法是从菜单中选择“项目(P)”。当“参考(N)”窗口出现时,选择Microsoft DAO 30对象库或Microsoft Dao 25/30兼容库(与Access 20之前的版本兼容)。(如果你用的是16位版本的VB,选择微软DAO 25对象库)
3 .问题:我想控制I/O,VB有类似Quick BASIC的INP和OUT指令吗?
回答:VB没有INP和OUT指令可用,甚至Windows API函数也没有类似的功能,因为Windows不希望应用程序直接控制硬件。如果想控制RS232的通讯口,VB专业版(或企业版)中有现成的MSComm控件可用。
4。问题:如何创建椭圆形?
回答:当然是用Win32 API函数。使用VB5中文API文本查看器,在表单的一般代码中添加以下API函数,可以制作一个椭圆窗口。
Private Declare Function createellarirgn Lib " GDI 32 "( ByVal X1为Long、ByVal Y1为Long、ByVal X2为Long、ByVal Y2为Long)Long
Private Declare Function SetWindowRgn Lib " user 32 "( ByVal hWnd为Long、ByVal hRgn为Long、Byval Bradraw为boolean)Long
将以下代码添加到Form_Load()表单中:
Private subform _ Load()
Show
更多信息请关注考试大计算机等级站。
0条评论