ورود

View Full Version : سوال: سوال در مورد WM_MOUSEWHEEL



Moharram
شنبه 27 مهر 1392, 14:49 عصر
سلام
من یه کلاس دارم که از CWnd مشتق شده، توی اون کلاس برای تابع WindowProc کد نوشتم و یه شرط روی message دریافتی گذاشتم که اونها رو از هم تفکیک کنم. در مورد message های WM_MOUSEMOVE و WM_LBUTTONUP و ... درست کار میکنه و میتونم تابع مورد نظرم رو فراخوانی کنم، اما با WM_MOUSEWHEEL مشکل دارم.
اول به اشتباه فکر میکردم که اصلا message براش تولید نمیشه، اما خیلی اتفاقی فهمیدم که باید اول کلید وسط رو فشار بدم بعد scroll کنم تا message تولید بشه !!! الان میخوام اون فشار دادن کلید وسط نباشه ...
البته این رو هم بگم که وقتی اینکارها رو تو یه برنامه App انجام میدم همه چیز درسته، اما تو این کاربردی که من دارم، اون کلاسه توی یه ActiveX فراخوانی میشه و قراره window اون باشه.
ممنون

Moharram
دوشنبه 29 مهر 1392, 13:10 عصر
اینکه گفتم اتفاقی فهمیدم که باید کلید وسط رو فشار بدم بعد scroll کنم، این بود که یه بار کلید رو فشار دادم و Babylon که نصب کرده بودم صفحه اش باز شد، بعد با یه Escape اون رو بستم و scroll کردم که message رو تونستم بگیرم.
اما وقتی Babylon بسته باشه یا وقتی Disable باشه، دیگه اون فشار دادن کلید وسط هم باعث تولید message نمیشه... !
نکنه Babylon چیزی رو دستکاری کرده ... ؟

Moharram
پنج شنبه 09 آبان 1392, 13:30 عصر
مشکلم این جوری حل شد که تو تابع WindowProc برای WM_MOUSEMOVE از تابع SetFocus استفاده کردم.
یعنی هربار که ماوس رفت روی کنترل، با فراخوانی این تابع، Focus میاد روی همین کنترل و اون وقت دیگه میتونه WM_MOUSEWHEEL رو بگیره.
همین