VB千里行-让程序在后台运行

2018-06-17 17:16:08来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

比如说,我们在表单上设置了一个计时器控件,这个定时器的任务就是在表单上显示当前的时间,同时设置当程序运行时启动定时器。程序运行后,当前的时间将在表单上实时地显示出来。但如果我们同时设置一个command按钮,并设计它的click事件为调用msgbox显示一个随意的信息。当我们点击这个按钮后,就会出现一个对话框,这时,请留心看看原本显示当前事件的那个位置,你发现了什么?呵呵,时间不再更新显示了;-(当再次点击对话框的按钮,使之消失时,时间又恢复正常,继续实时显示了。

  问题已经描述清楚了。我们将要解决的就是,当出现对话框时,让时间仍能正确地实时显示,也就是说,让程序在后台继续运行。

  使用API函数MessageBox

  使用VB自带的函数MSGBOX是完成不了我们期望的后台程序运行了,在上面我们已经谈到。为了解决这个问题,这里提供一个简单并且很好用的技巧:使用WindowsAPI函数MessageBox。它产生的效果及外观与使用MSGBOX基本一样,但却不会中止后台程序的继续运行。

  引用MessageBox

  为了使用这个函数,必须首先在代码的最前端设置引用信息,请输入以下的代码:

  DeclareFunctionMessageBoxLib"user32"Alias"MessageBoxA"(ByValhwndAsLong,ByVallpTextAsString,ByVallpCaptionAsString,ByValwTypeAsLong)AsLong

  例程代码

  接着,在表单上添加1个定时器控件,2个按钮控件,1个label控件。定时器控件控制显示当前时间,一个命令按钮调用MSGBOX对话框,另一个命令按钮调用MessageBox函数,Label存放当前时间。你可以通过点击不同的命令按钮,查看label中显示的时间是否有停止的现象。

  代码如下:

  PrivateSubCommand1_Click()
MsgBox"请看看时间显示是否停止了!"
EndSub

  PrivateSubCommand2_Click()
MessageBoxMe.hwnd,"请注意,时间显示没有停止!","APICall",_vbOKOnly vbExclamation
EndSub

  PrivateSubTimer1_Timer()
Label1.Caption=Time
EndSub


  更多的设想

  上面的代码是否很简单?的确这样,使用API函数,有时能启动意想不到但却是很实用的效果。当然,你也可以编写自己的对话框函数,这也不是很复杂,而且能更加细微地控制用户的输入。->

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:如何用TextBox打开和保存文件

下一篇:用VB设计VCD播放器的方法与技巧