PDA

View Full Version : سوال: شناسایی ماوس خارج از صفحه برنامه



mmssoft
یک شنبه 10 شهریور 1392, 14:20 عصر
سلام
من لازم دارم که توی برنامم وقتی پوینتر ماوس از صفحه برنامه خارج میشه و دیگه روی محدوده پنجره برنامه نیست (چه روی برنامه فوکوس باشه چه نباشه)، یه اتفاقی رخ بده... چجوری میتونم تشخیص بدم که کی پوینتر روی پنجره هست و کی نیست؟؟

مرسی

mmssoft
یک شنبه 10 شهریور 1392, 18:09 عصر
کسی نظری نداره؟؟

SlowCode
یک شنبه 10 شهریور 1392, 19:34 عصر
سلام
داخل یه تایمر با تابع GetCursorPos (http://msdn.microsoft.com/en-us/library/windows/desktop/ms648390%28v=vs.85%29.aspx) چک کن اگر x موس از left فرم بیشتر باشه و از left + width کمتر باشه دوباره چک کن اگه y موس از top فرم بیشتر باشه و از top + height کمتر باشه یعنی موس داخل فرم هست.

mmssoft
یک شنبه 10 شهریور 1392, 20:12 عصر
من یه کم تو کار با api ها مشکل دارم، اگه میشه کد اضافه کردنش به پروژه (یعنی همون Private Declare Function ... رو بذارید)

alirezabahrami
دوشنبه 11 شهریور 1392, 10:14 صبح
سلام
من لازم دارم که توی برنامم وقتی پوینتر ماوس از صفحه برنامه خارج میشه و دیگه روی محدوده پنجره برنامه نیست (چه روی برنامه فوکوس باشه چه نباشه)، یه اتفاقی رخ بده... چجوری میتونم تشخیص بدم که کی پوینتر روی پنجره هست و کی نیست؟؟

مرسی


من یه کم تو کار با api ها مشکل دارم، اگه میشه کد اضافه کردنش به پروژه (یعنی همون Private Declare Function ... رو بذارید)

سلام
در نمونه ضمیمه به محض بیرون رفتن اشاره گر موس خارج از صفحه فرم ، پیغام صادر میشود .
یا علی

alirezabahrami
دوشنبه 11 شهریور 1392, 15:39 عصر
سلام
در نمونه ضمیمه به محض بیرون رفتن اشاره گر موس خارج از صفحه فرم ، پیغام صادر میشود .
یا علی
سلام
کد رویداد Timer1_Timer بصورت زیر باید تغییر کند!
یا علی


Dim rctForm As WM_Rect
If WM_apiGetWindowRect(Me.hwnd, rctForm) Then
GetCursorPos CurPos
If Str(CurPos.Y) < rctForm.Top Or Str(CurPos.X) < rctForm.Left Or Str(CurPos.Y) > rctForm.Bottom Or Str(CurPos.X) > rctForm.Right Then
Label1.Caption = "ÇÔÇÑå Ñ ãæÓ ÈíÑæä ÇÒ ÕÝÍå ÝÑã ÞÑÇÑ ÏÇÑÏ"
Else
Label1.Caption = ""
End If
End If