PDA

View Full Version : از کدام event باید استفاده کرد



alireza643
چهارشنبه 03 مرداد 1386, 07:52 صبح
سلام
من یه عکس دارم که میخوام وقتی کاربر یه مدت کوتاهی روی یه نقطه از اون متوقت شد x , y اون نقطه رو تو یه textbox به کاربر نشون بدم.
برای این کار event خاصی وجود داره که بعد از یه مدت کوتاه توقف اتفاق بیوفته یا این که من باید از MouseMove استفاده کنم و داخل اون خودم یه تایمر بگذارم و زمان رو کنترل کنم که اگر به یه حدی رسید پیغام رو نشون بدم؟

MH2538
چهارشنبه 03 مرداد 1386, 07:57 صبح
سلام دوست عزیز
به نظر من بهترین راه حل همونیه که خودت گفتی.
یعنی همون ترکیب تایمر و رخداد mousemove
فقط باید موقع رخداد خروج موس تایمرت رو متوقف کنی

alireza643
چهارشنبه 03 مرداد 1386, 15:18 عصر
با تشکر از MH2538 عزیز ولی این راه حل چندان مناسب به نظرم نمیاد. درسته راهی هست که خودم گفتم ولی وقتی بهش فکر میکنم احساس غریبه برنامه نویسیم(البته از نوع تازه کارش) بهم میگه حتما راه بهتری هست.
دوستان اگر کسی یه راه حل مناسب میدونه بگه. آخه به نظرم این کار سربار زیادی برای سیستم داره.

PC2st
چهارشنبه 03 مرداد 1386, 15:53 عصر
استفاده از رخداد MouseHover... در صورتی که ماوس به مدت زمان خیلی ناچیز، روی کنترل توقف کند، متد این رویداد صدا زده میشه. اما اگر ماوس در حال حرکت روی کنترل باشد و توقفی (به مدت زمان ناچیز) نداشته باشد، این رویداد، کاری نخواهد کرد.

alireza643
پنج شنبه 04 مرداد 1386, 22:00 عصر
متشکرم.
این مدت زمان قابل تنظیمه یا نه؟

PC2st
سه شنبه 09 مرداد 1386, 22:25 عصر
این مدت زمان قابل تنظیمه از طریق تابع SystemParametersInfo که یکی از توابع API ویندوز هست،
که باید مقدار ثابت SPI_SETMOUSEHOVERTIME = 0x0067 به عنوان اولین پارامتر به آن ارسال بشه و بقیه پارامترها هم باید تنظیم بشه که من از جزئیات کار با خبر نیستم.

alireza643
چهارشنبه 10 مرداد 1386, 08:39 صبح
ولی MouseHover فقط یک بار اتفاق میافتده و بعد حتی اگر موس حرکت کنه و بایسته دیگه این رخداد اتفاق نمیافته و حتما باید یک بار از محدوده تصویر خارج بشیم تا دوباره اتفاق بیوفته برای این مشکل نمیشه کاری کرد؟

PC2st
چهارشنبه 10 مرداد 1386, 19:17 عصر
برای این مشکل نمیشه کاری کرد؟فکر نمیکنم بشه (مطمئن نیستم)...