View Full Version : تغییر مکان اشاره گر موس و بردن ان به مکانی مشخص
Veteran
دوشنبه 26 دی 1390, 18:13 عصر
سلام دوستان خوبین :لبخند:
چجوری مکان موس رو ببریم به محل مشخص که مد نظر ما هست ؟
به فرض ما یک تکست باکس داریم روی یک فرم
یک برنامه دیگه هم داریم که با کلیک کردن بر روی دکمه کد مورد نظر اجرا و اشاره گر موس بره روی اون تکست باکسی که روی اون یکی فرم داریم قرار بگیره
با تشکر:لبخند:
IamOverlord
دوشنبه 26 دی 1390, 18:34 عصر
Form2.Text1.SetFocus
Veteran
دوشنبه 26 دی 1390, 18:46 عصر
عزیز منظور این نبود خود اشاره گر موس رو میگم
بعدش این فوکس میکنه اشاره گر موس رو که نمیره روی تکست باکس
به فرض من روکی کامند کلیک کردم اشاره گر موس ( پیکان روی صفحه مانیتور ) بره روی ایکون my compyter روی دسکتاپ
IamOverlord
دوشنبه 26 دی 1390, 20:41 عصر
اینا رو ببین:
Public Declare Function SetCursorPos Lib "user32" Alias "SetCursorPos" (ByVal x As Long, ByVal y As Long) As Long
Public Declare Function SetCaretPos Lib "user32" Alias "SetCaretPos" (ByVal x As Long, ByVal y As Long) As Long
Veteran
دوشنبه 26 دی 1390, 22:16 عصر
تشکر
اما به چه صورت میتونیم بفهمیم که مثلا این ایکون my computer که روی دسکتاپ هست مختصاتش برای موس x,y چند هست ؟
یا کلا هر چیزی
که ممکنه دائما مکان اون شی تغییر بکنه
IamOverlord
دوشنبه 26 دی 1390, 22:40 عصر
این زمانی به درد می خوره که hWnd رو داشته باشی:
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Public Declare Function GetWindowRect Lib "user32" Alias "GetWindowRect" (ByVal hwnd As Long, lpRect As RECT) As Long
Veteran
دوشنبه 26 دی 1390, 22:54 عصر
ببخشین این چیکار میکنه الان ؟
IamOverlord
دوشنبه 26 دی 1390, 23:23 عصر
اون برای پیدا کردن مختصات یه پنجره است. البته در سیستم عامل Widnows مقصود از پنجره فقط Form ها نیستند؛ مثلا TextBox ها و ... . فقط کافیه یه مقدار از نوع RECT تعریف کنی و با استفاده از اون تابع API مختصات و اندازه ی پنجره رو با داشتن خصوصیت hWnd اون پنجره، به دست بیاری.
MSDN (http://msdn.microsoft.com/en-us/library/windows/desktop/ms633519(v=vs.85).aspx)
sr2m72
سه شنبه 27 دی 1390, 00:11 صبح
ببين اين به دررت مي خوره؟
80941
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.