VB里面怎么把一个窗体在激活状态总是在当前别的窗体的上面

来源:百度知道 编辑:UC知道 时间:2024/08/23 06:00:32
我做了一个类似QQ的界面的一个小小软件,可不能想QQ那样总是可以实现在别的窗体的上面 ,就是覆盖别的窗体(我的窗体是用图形做的不规则窗体)

非常非常谢谢哪位高手的指教啊!!!

把下面这段代码放在代码窗口就行了:

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 Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub

调用一个API函数SetWindowPos可实现此功能。

首先添加一个公用模块,将下面的代码放到模块的声明段中。

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 Const HWND_TOPMOST = -1
Public Const SWP_NOMOVE = &H2
Public Const SWP_