一.通過鼠標在屏幕上的移動來控件程序界面
本例通過鼠標在屏幕上的移動來控制程序窗體的顯示與隱藏:當鼠標移動到窗體所在區域時窗體顯示,反之隱藏起來。僅需一條API函數:GetCursorPos。注意:如果需要將API函數置於模塊中請對代碼作相應修改。要嘗試本例,需給標准EXE工程缺省添加一個Timer控件。
PrivateTypePOINTAPI
xAsLong
yAsLong
EndType
PrivateDeclareFunctionGetCursorPosLib"user32"(lpPointAsPOINTAPI)AsLong
PrivateSubForm_Load()
Me.Visible=False
Timer1.Enabled=True
Timer1.Interval=100
EndSub
PrivateSubTimer1_Timer()
DimlResultAsLong
DimlpPointAsPOINTAPI
DimiCounterAsInteger
lResult=GetCursorPos(lpPoint)
IflpPoint.x<Me.LeftScreen.TwipsPerPixelXOrlpPoint.x>(Me.Left _
Me.Width)Screen.TwipsPerPixelXOrlpPoint.y<Me.Top\_
Screen.TwipsPerPixelYOrlpPoint.y-10>(Me.Top Me.Height)\_
Screen.TwipsPerPixelYThen
Me.Visible=False'鼠標在窗體區域之外時
Else
Me.Visible=True'鼠標在窗體區域之內時
EndIf
EndSub
二.獲得Mouse_Exit事件
所謂Mouse_Exit事件,是指鼠標指針離開某一控件所應發生的事件。本例是通過Form_MouseMove事件來判斷鼠標指針是在窗體之內還是窗體之外的,你可根據需要作相應改動。請給窗體缺省創建一個按鈕(用於觀察效果)。
PrivateDeclareFunctionSetCaptureLib"user32"(ByValhWndAsLong)AsLong
PrivateDeclareFunctionReleaseCaptureLib"user32"()AsLong
PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
DimMouseExitAsBoolean
MouseExit=(0<=X)And(X<=Me.Width)And(0<=Y)And(Y<=Me.Height)
IfMouseExitThen
Me.Caption="鼠標指針在窗體范圍內"
Command1.Enabled=True
SetCaptureMe.hWnd
Else
Me.Caption="鼠標指針在窗體范圍外"
Command1.Enabled=False
ReleaseCapture
EndIf
EndSub->