提问:假设有窗体Form1,如何使它总在其它窗体的前面,不被任何窗体或游戏画面所覆盖,怎样在vb6.0中实现相关代码?能给出详细说明就更好了,谢!!! 有网友回答: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) 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 Sub Form_Activate() SetWindowPos Me.hWnd, HWND_TOPMOST, 0,&nb! sp;0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE End Sub 以上代码调试时却不能通过,谁能纠错? 还有可以在Form_Load()中调用这个“SetWindowPos”API吗? 是否可以在任何事件中调用? 谢,急~~~
Option Explicit#If Win16 Then Declare Sub SetWindowPos Lib "User" (ByVal hwnd As Integer, ByVal hWndInsertAfter As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) #Else 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) #End If Private Sub Form_Load() '_____________________________ '设置窗体在最前面 '________________________________ Dim rtn rtn = SetWindowPos(me.hwnd, -1, 0, 0, 0, 0, 3) End Sub 你再试一下!我可以调试通过!
http://expert.csdn.net/Expert/topic/762/762087.xml?temp=.8301355
http://expert.csdn.net/Expert/topic/713/713313.xml?temp=.446499
有网友回答: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) 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 Sub Form_Activate()
SetWindowPos Me.hWnd, HWND_TOPMOST, 0,&nb! sp;0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub
以上代码调试时却不能通过,谁能纠错?
还有可以在Form_Load()中调用这个“SetWindowPos”API吗?
是否可以在任何事件中调用?
谢,急~~~
Declare Sub SetWindowPos Lib "User" (ByVal hwnd As Integer, ByVal hWndInsertAfter As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer)
#Else
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)
#End If
Private Sub Form_Load()
'_____________________________
'设置窗体在最前面
'________________________________
Dim rtn
rtn = SetWindowPos(me.hwnd, -1, 0, 0, 0, 0, 3)
End Sub
你再试一下!我可以调试通过!
关注