تبليغاتX
برنامه نويسي VB
برنامه نويسي VB
معرفي API

سلام

امروز با يه API آشنا شدم كه خيلي جالب بود، گفتم به شما هم ياد بدم.

 

توسط اين API كه اسمش ClipCursor هست، مي‌تونيد نشانگر ماوس رو در يك مستطيل زنداني كنيد.

معطل نكنيد. يه پروژه باز كنيد و كدهاي زير رو بهش اضافه كنيد.

 

Private Declare Function ClipCursor Lib "user32" (lpRect As Any) As Long

Private Type RECT

        Left As Long

        Top As Long

        Right As Long

        Bottom As Long

End Type

 

مي‌بينيد كه اين API فقط يه پارامتر داره و كار باهاش راحته.

حالا دو تا دكمه تو فرم بذاريد و كد زير رو تو رويداد click اولين دكمه بنويسيد:

 

  Dim rcRect As RECT

  rcRect.Left = Me.Left / 15

  rcRect.Top = Me.Top / 15

  rcRect.Right = Me.Width / 15 + rcRect.Left

  rcRect.Bottom = Me.Height / 15 + rcRect.Top

  ClipCursor rcRect

 

تو كليك دكمه دوم هم بنويسيد:

 

  Dim rcRect As RECT

  rcRect.Left = 0

  rcRect.Top = 0

  rcRect.Right = Screen.Width / 15

  rcRect.Bottom = Screen.Height / 15

  ClipCursor rcRect

 

حلا برنامه رو اجرا كنيد و دكمه اول رو كليك كنيد. حالا نشانگر ماوس رو تكون بديد.

جالب بود. نه؟ اگه رو دكمه دوم كليك كنيد، نشانگر آزاد مي‌شود. (البته آزاد نمي‌شود، فقط زندانش بزرگتر مي‌شود!)

 

توضيح: چهار متغير موجود در ساختار RECT، ابعاد مستطيل را مشخص مي‌كنند. مي‌تونيد به داخواه خود اونا رو تغيير بديد و امتحان كنيد. فقط به ياد داشته باشيد كه ابعاد داده شده بايد بر حسب پيكسل باشند، به همين خاطر بود كه من اونا رو به 15 تقسيم كردم، چون هر پيكسل 15 تويپ هست.

 

البته اگه يادتون رفت كه قبل از بستن پنجره، نشانگر رو آزاد كنيد، نگران نباشيد، دكمه ويندوز را از صفحه كليد بزنيد، آزاد مي‌شود.

 

ضمناً در مورد سؤال يكي از دوستان كه پرسيده بودند چطر مي‌تونيم با دكمه وسط ماوس، اسكرول‌بار رو كنترل كنيم، هر چي فكر كردم، راه حلي به ذهنم نرسيد. دوستان اگه مي‌دونن، لطف كنن.

2 نوشته شده در  سه شنبه 1 شهریور1384ساعت 15:35  توسط موسي مرادي