vs开发java:关于VB的问题!

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 22:07:35
我做了一个简单的界面~~

我想要启动时在任何桌面窗口的最上一层 要如何实现?

(例:就像QQ直播 一样 可以在桌面任何一个窗口的置前,没有其他窗口可以当着他)

环境:新建一个窗口,名字:frmOnTop
'在最顶输入定义函数
Public 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

'=============================窗口最高层过程==================================
Public Sub OnTop()
Const SWP_NOMOVE = &H2
Const SWP_NOSIZE = &H1
Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
If SetWindowPos(frmOnTop.hWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS) = True Then
success% = SetWindowPos(frmOnTop.hWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
End If
End Sub
'===============================================================================

'===================窗口代码====================
Private Sub Form_Load()
OnTop
End Sub
'===============================================

--------------------------------------------------------------------------------

撤消最高层:

'==================取消最高层过程=============================
Private Sub NoOnTop()
Const SWP_NOMOVE = &H2
Const SWP_NOSIZE = &H1
Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
success% = SetWindowPos(frmOnTop.hWnd, 1, 1, 0, 0, 0, FLAGS)
End Sub
'============================================================

使用时,只要输入:
NoOnTop就行了