خیلی جالب بود ولی کم نبود؟
Printable View
خیلی جالب بود ولی کم نبود؟
سلام.
من برگشتم.
اين بار ميخوام يه ترفند يادتون بدم.
چند وقت پيش ميخواستم يه كامپوننت بنويسم كه وقتي ماوس روي اون قرار مي گرفت بايد تغيير شكل ميداد (مثلا برجسته ميشد)
يه چيزي تو مايههاي ODPB Button كه دكمههاي سيستم عاملهاي مختلف رو تو خودش داره.
حالا مشكل من اينجا بود كه نميتونستم به برنامه بفهمونم كه الان ماوس روي كنترل من هست يا نه ؟!
بعد از كلي ور رفتن و مطالعه يه راه حل پيدا كردم:
توضيح كد:کد:Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) 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
Private Sub UserControl_Initialize()
Timer1.Enabled = True
Timer1.Interval=10
End Sub
Private Sub Timer1_Timer()
Dim pt As POINTAPI
Dim r As RECT
GetCursorPos pt
GetWindowRect UserControl.hWnd, r
If pt.X <= r.Right And pt.X >= r.Left And pt.Y <= r.Bottom And pt.Y >= r.Top Then
'ماوس روي كنترل است
Else
'ماوس روي كنترل نيست
End If
End Sub
تابع GetCursorPos مختصات ماوس و تابع GetWindowRect مختصات گوشههاي (بالا، پايين، چپ و راست) كنترل رو به ما ميده.
ما به يه Timer هم نياز داريم كه قسمت چك كردن رو توي اون بنويسيم. Interval تايمر رو هم روي 10 قرار ميديم تا هر يك صدم ثانيه چك كنه كه ماوس روي كنترل قرار داره يا نه.
خوب اينم از اين.
در ضمن نيايد بگيد كه اين چه جور آموزشي بود ديگه، چونكه مطمئنم خيليا اينو بلد نيستن.
(اگه بلد بودي چرا اون موقع كه من اين مشكل رو داشتم و توي انجمن مطرح كردم جوابمو ندادي [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] )
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام و خسته نباشید
امیدوارم در اداره این تاپیک موفق باشید.
ممنون که به فکر پیشرفت دوستان هستید./