急!任何让一个窗体永远在最前面,失去焦点也不会最小化

解决方案 »

  1.   

    定义API函数:
    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
    在窗口中应用:
    Private Sub Form_Activate()
        SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
    End Sub
      

  2.   

    Private Sub Form_Activate()
        SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
    End Sub模块:
    Option Explicit
    Public Const WM_NCLBUTTONDOWN = &HA1
    Public Const HTCAPTION = 2
    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 LongPublic Const HWND_BOTTOM = 1
    Public Const HWND_DESKTOP = 0
    Public Const HWND_NOTOPMOST = -2
    Public Const HWND_TOP = 0
    Public Const HWND_TOPMOST = -1
    Public Const SWP_FRAMECHANGED = &H20
    Public Const SWP_DRAWFRAME = SWP_FRAMECHANGED
    Public Const SWP_HIDEWINDOW = &H80
    Public Const SWP_NOACTIVATE = &H10
    Public Const SWP_NOCOPYBITS = &H100
    Public Const SWP_NOMOVE = &H2
    Public Const SWP_NOOWNERZORDER = &H200
    Public Const SWP_NOREDRAW = &H8
    Public Const SWP_NOREPOSITION = SWP_NOOWNERZORDER
    Public Const SWP_NOSIZE = &H1
    Public Const SWP_NOZORDER = &H4
    Public Const SWP_SHOWWINDOW = &H40
      

  3.   

    SetWindowPos
    就可以了,以前很多贴子的