精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>● VB和Basic(1)>>高级技巧>>VB中将窗体设为总在最前的方法

主题:VB中将窗体设为总在最前的方法
发信人: jackischang()
整理人: fishy(1999-09-30 00:48:56), 站内信件
【 在 lizhi (linlin) 的大作中提到: 】
调用一些API函数即可
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOZORDER = &H4
Private Const SWP_NOREDRAW = &H8
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_SHOWWINDOW = &H40
Private Const SWP_NOCOPYBITS = &H80
Private Const SWP_NOOWNERZORDER = &H200
Private Const SWP_DRAWFRAME = SWP_FRAMECHANGED
Private Const SWP_NOREPOSITION = SWP_NOOWNERZORDER
Private Const HWND_TOP = 0
Private Const HWND_BOTTOM = 1
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
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 mbOnTop As Boolean
  Private Property Let OnTop(Setting As Boolean)
    If Setting Then
         SetWindowPos hwnd, -1, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
      Else
         SetWindowPos hwnd, -2, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
      End If
      mbOnTop = Setting
End Property
Private Property Get OnTop() As Boolean
     AlwaysOnTop = mbOnTop
End Property
最后调用AlwaysOnTop=True即可。

--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.109.34.27]

[关闭][返回]