让窗口一直在上面

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

让窗口一直在上面

http://www.tongyi.net 作者:天涯风铃 点击:419

很多流行软件都有这样一个选项:Always on Top。它可以让窗口在最上面,别的窗口不能覆盖它。我们在 VB 中,可以使用下面的方法来实现:

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

'Return the private variable set in Property Let

OnTop = mbOnTop

End Property

调用 OnTop=True 即可让窗口 Always On Top。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航