VB中實現窗體自動隱藏 (轉)
OICQ時的窗體自動隱藏功能,用或CBC都可以很簡單地實現,前幾天看到有一則用CBC實現的例子,便想用VB實現一下,可惜當窗體上放滿時,FORM的MOUSEMOVE事件不能很好地觸發,所以只好用以下的笨辦法,現把程式碼貼上,窗體上需放一TIMER控制元件,Interval屬性為200。大夥如有好的意見,不妨貼出來,讓我學習學習。
Option Explicit
Private Declare Function GetCursorPLib "user32" (lpPoint As POINT) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
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 Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Const HWND_TOPMOST = -1
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private Const HWND_TOP = 0
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_SHOWWINDOW = &H40
Private Sub Form_Load()
'窗體放在最前面
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub
Private Sub Timer1_Timer()
Dim p As POINTAPI
Dim f As RECT
GetCursorPos p '得到MOUSE位置
GetWindowRect Me.hwnd, f '得到窗體的位置
If Me.tate <> 1 Then
If p.X > f.Left And p.X < f.Right And p.Y > f.Top And p.Y < f.Bottom Then
'MOUSE 在窗體上
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
Else
If 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 If
End Sub
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1003055/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在VB中實現窗體的動態效果 (轉)
- vb窗體中控制元件自動隨窗體變化大小(原始碼)控制元件原始碼
- C#實現類似QQ的隱藏浮動窗體、訊息閃動C#
- 在VC中實現程式在啟動時隱藏 (轉)
- “黑屏”隱藏實現 (轉)
- ubuntu中將皮膚自動隱藏Ubuntu
- chrome,firfox,IE實現隱藏滾動條但是可以正常滾動(瀏覽器自帶隱藏屬性實現)Chrome瀏覽器
- css實現隱藏滾動條CSS
- 如何自動實現本地AD中禁用的使用者從地址列表中隱藏掉?
- 讓VisualBasic實現隱藏Mouse (轉)
- VB原始碼推薦: 動態的顯示/隱藏start按鈕 (轉)原始碼
- 用VB實現“百葉窗”的圖形特效 (轉)特效
- Vb中控制元件的自動排列 (轉)控制元件
- Vue實現浮動按鈕元件 - 頁面滾動時自動隱藏 - 可拖拽Vue元件
- Windows系統中巧妙隱藏驅動器(轉)Windows
- 從VB 6到VB.NET——窗體特殊應用 (轉)
- 在執行時顯示或隱藏窗體的標題欄 (轉)
- 自動隱藏的Sticky的HeaderHeader
- 如何在Windows下啟動Koa並隱藏視窗Windows
- 製作可以自動隱藏的彈出式選單 (轉)
- 在Delphi中實現任意形狀的窗體 (轉)
- 用CSS樣式實現顯示隱藏層 (轉)CSS
- 在VB6.0中實現動態統計報表 (轉)
- 啟動按ctrl鍵 遮蔽自動隱藏功能
- 利用動態建立自動化介面實現VB的函式指標呼叫 (轉)函式指標
- 在VB中用API實現多媒體 (轉)API
- 編寫驅動攔截NT的API實現隱藏檔案目錄 (轉)API
- css實現隱藏滾動條並可以滾動內容CSS
- 網頁中隱藏幀的妙用 (轉)網頁
- VB實現抽象類 (轉)抽象
- 一款可以自動隱藏的視窗管理工具:Slidepad Mac版IDEMac
- WebBrowser隱藏後自動銷燬的BUG以及解決辦法 (轉)Web
- WinNT&Win2K下實現程式的完全隱藏(轉)
- Android中EditText隱藏/自動彈出輸入法的問題Android
- jQuery 實現顯示與隱藏效果jQuery
- CSS實現隱藏超出的內容CSS
- 應用例項:VC++實現廣告視窗自動關閉(轉)C++
- javascript動態隱藏顯示技術(轉)JavaScript