vb的窗体怎么显示在最前端?
1个回答
2013-09-14
展开全部
在某些情况下我们需要某个窗体总是在所有窗体的最前端,我们可以使用Form1.show 1来实现,但是这样会出现一个问题,就是使整个程序暂停运行,直到Unload Form1后程序才会继续运行.
那么如何使我的窗口总在最前?而不影响到我的整体程序运行呢?
使用api函数 SetWindowPos 可以很容易的作到。
SetWindowPos 就是完成设置窗口位置和状态(pos=position)的功能。源代码如下:
Option Explicit
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
Private Const HWND_TOPMOST& = -1
' 将窗口置于列表顶部,并位于任何最顶部窗口的前面
Private Const SWP_NOSIZE& = &H1
' 保持窗口大小
Private Const SWP_NOMOVE& = &H2
' 保持窗口位置
Private Sub Form_Load()
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
' 将窗口设为在所有窗口前端
End Sub
那么如何使我的窗口总在最前?而不影响到我的整体程序运行呢?
使用api函数 SetWindowPos 可以很容易的作到。
SetWindowPos 就是完成设置窗口位置和状态(pos=position)的功能。源代码如下:
Option Explicit
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
Private Const HWND_TOPMOST& = -1
' 将窗口置于列表顶部,并位于任何最顶部窗口的前面
Private Const SWP_NOSIZE& = &H1
' 保持窗口大小
Private Const SWP_NOMOVE& = &H2
' 保持窗口位置
Private Sub Form_Load()
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
' 将窗口设为在所有窗口前端
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询