如何显示等待界面?

woodbine 2003-02-17 04:05:50
我有个程序,由于计算比较多,等待时间较长,因此在后台运算时,我希望有个什么可以显示出来,比如说:"正在处理数据,请稍候...",不知用什么控件,还是用窗体.
我尝试用一个窗体,但是始终不能显示在最上层,如果用"form.show 1",则本来计算的过程被终止了.
不知用什么方法解决?
...全文
47 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
woodbine 2003-02-17
  • 打赏
  • 举报
回复
FormStyle:=fsStayOnTop;? 没有这个属性啊
Cooly(苦力)的可行的;作真正的进度条很是复杂,用API是可以的
谢谢!
dragonhux 2003-02-17
  • 打赏
  • 举报
回复
唉,天啊!
为什么你们告诉他的这麻烦,我看
啦半天没看懂!

简单点:
把窗体的
FormStyle:=fsStayOnTop;
就可以保留在最上面啦!
Sammi52 2003-02-17
  • 打赏
  • 举报
回复
用一个大大的按钮即可,最简单的实现方法。
Sean918 2003-02-17
  • 打赏
  • 举报
回复
如果用窗体,需要置前时,使用api函数 SetWindowPos

例子如下:

Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Private Sub Form_Activate()
'Set the window position to topmost
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub
Cooly 2003-02-17
  • 打赏
  • 举报
回复
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Sub YourFunction()
dim rtn as long
rtn = SetWindowPos(Form2.hwnd, -1, 0, 0, 0, 0, 3)
Form2.Show
开始。。。。。
.
.
.
.
结束。。。
Unload Form2
end sub

其中Form2的BorderStyle=0 , 其他效果自己添加。
minajo21 2003-02-17
  • 打赏
  • 举报
回复
progressbar

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧