前端之家收集整理的这篇文章主要介绍了
VB6 窗体边缘自动隐藏,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
- 添加一个timer控件 Interval属性为200
- **********模块代码***************
- Option Explicit
- Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
- Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,lpRect As RECT) As Long
- 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
-
- Public Type RECT
- Left As Long
- Top As Long
- Right As Long
- Bottom As Long
- End Type
-
- Public Type POINTAPI
- X As Long
- Y As Long
- End Type
-
- Public Const HWND_TOPMOST = -1
- Public Const SWP_NOSIZE = &H1
- Public Const SWP_NOMOVE = &H2
- Public Const HWND_TOP = 0
- Public Const SWP_NOACTIVATE = &H10
- Public Const SWP_SHOWWINDOW = &H40
-
- *********窗体程序代码**************
- Private Sub Form_Load()
- SetWindowPos Me.hwnd,HWND_TOPMOST,SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
- End Sub
-
- Private Sub Timer1_Timer()
- On Error Resume Next
- Dim p As POINTAPI
- Dim f As RECT
- GetCursorPos p
- GetWindowRect Me.hwnd,f
- If Me.WindowState <> 1 Then
- If p.X > f.Left And p.X < f.Right And p.Y > f.Top And p.Y < f.Bottom Then
- If Me.Top < 0 Then
- Me.Top = -10
- Me.Show
- ElseIf Me.Left < 0 Then
- Me.Left = -10
- Me.Show
- ElseIf Me.Left + Me.Width >= Screen.Width Then
- Me.Left = Screen.Width - Me.Width + 10
- Me.Show
- End If
- ElseIf f.Top <= 4 Then
- Me.Top = 40 - Me.Height
- ElseIf f.Left <= 4 Then
- Me.Left = 40 - Me.Width
- ElseIf Me.Left + Me.Width >= Screen.Width - 4 Then
- Me.Left = Screen.Width - 40
- End If
- End If
- End Sub
- ****************END*************************