View Full Version : سوال: موس روی فرم هست یا نه
  
ali_1234
پنج شنبه 29 بهمن 1388, 11:14 صبح
سلام دوستان من یه سوال دارم و اونم اینکه چطور می شه فهمید که آیا موس روی فورم هست یا نه.:متفکر:
ali_1234
پنج شنبه 29 بهمن 1388, 12:41 عصر
سلام.
کسی نیست به داده ما برسه.
ممنون می شم اگه کمکم کنید خیلی لازم دارم.:بوس:
javadt
پنج شنبه 29 بهمن 1388, 13:15 عصر
شما مختصات فرم رو حساب کن
بعد با یک تایمر چک کن ببین که x و y موس روی توی مختصات فرم هستند یا نه
ali_1234
پنج شنبه 29 بهمن 1388, 13:35 عصر
سلام دوست عزیز javadt خیلی ممنون که جواب دادین می شه یکم بیشتر توضیح بدین.
moos111
پنج شنبه 29 بهمن 1388, 13:40 عصر
اول این تابع رو در یک ماژول تعریف کن
Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As PointAPI) As Long
Private Type PointAPI 'ãÎÊÕÇÊ äÓÈÊ Èå ãæÓ
    X As Long
    Y As Long
End Type
Private Type RECT 'ãÎÊÕÇÊ äÓÈÊ Èå ÏÓ˜ÊÇ
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Public Function GetMouseOver(hWnd As Long) As Boolean
    Dim wRect As RECT
    Dim Mouse As PointAPI
    GetCursorPos Mouse
    GetWindowRect hWnd, wRect
    If (Mouse.X <= wRect.Right And Mouse.X >= wRect.Left) And (Mouse.Y <= wRect.Bottom And Mouse.Y >= wRect.Top) Then
        GetMouseOver = True
    Else
        GetMouseOver = False
    End If
End Function
و بعدش یک تایمر روی فرمت قرار بده و Interval تایمر رو 100 قرار بده و بعد کد زیر رو در رویداد Timer تایمرت قرار بده
Private Sub Timer1_Timer()
If GetMouseOver(Me.hWnd) = True Then
دستوری که باید اجرا بشود.
End If
End Sub
javadt
پنج شنبه 29 بهمن 1388, 14:01 عصر
بفرما دوست عزیز
ali_1234
پنج شنبه 29 بهمن 1388, 14:40 عصر
سلام دوستان خیلی ممنون که جواب دادین مشکلم حل شد واقعا" نمی دونم چطوری ازتون تشکر کنم.
بازم ممنون که جواب دادین:بوس:.................
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.