悬挂窗体(使窗体保持最前)1、在窗体上建立一个复选框,名称:Check1,属性Caption改为“启用悬挂式窗体”写入下面代码Private Sub Check1_Click() Dim res As Long If Check1.Value = 1 Then res = SetWindowPos(Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, Flags) Else res = SetWindowPos(Me.hwnd, HWND_NOTOPMOST, _ 0, 0, 0, 0, Flags) End IfEnd Sub2、加入一个模块文件,写入下面代码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 '以上为API函数声明Public Const HWND_TOPMOST = -1Public Const SWP_NOMOVE = &H2Public Const SWP_NOSIZE = &H1Public Const SWP_FRAMECHANGED = &H20'The frame changed: send WM_NCCALCSIZEPublic Const SWP_DRAWFRAME = SWP_FRAMECHANGED'以上为程序中用到的常量 Public Const HWND_BOTTOM = 1Public Const HWND_BROADCAST = &HFFFF&Public Const HWND_DESKTOP = 0Public Const HWND_NOTOPMOST = -2Public Const HWND_TOP = 0Public Const SWP_HIDEWINDOW = &H80Public Const SWP_NOACTIVATE = &H10Public Const SWP_NOCOPYBITS = &H100Public Const SWP_NOOWNERZORDER = &H200'Don't do owner Z orderingPublic Const SWP_NOREDRAW = &H8Public Const SWP_NOREPOSITION = SWP_NOOWNERZORDERPublic Const SWP_NOZORDER = &H4Public Const SWP_SHOWWINDOW = &H40'以上常量声明在程序中没有使用'可以试着在调用SetWindowPos函数时使用这些常量或它们的组合'得到其他效果Public Const Flags = SWP_DRAWFRAME Or SWP_NOMOVE Or SWP_NOSIZE-----------------------------------------------------------------------

评论