View Full Version : x,y ماوس در screen
"juggle"
دوشنبه 23 اسفند 1389, 06:16 صبح
چجوری میتونم فرم را بادستور moveروی screen جابجا کنم؟
یعنی آیا screen دارای x , y هست؟
محسن واژدی
دوشنبه 23 اسفند 1389, 22:20 عصر
سلام
خود vb کلاسی با عنوان Screen دارد که بسیاری از ویژگی ها نظیر فونت ، فرم ها و ... را شامل میشود که خصوصیت پهنا و ارتفاع نیز جزئی از این ویژگی هاست
نمونه زیر چگونگی حرکت دادن یک فرم را حول محور Screen نشان میدهد
موفق باشید
یاعلی
"juggle"
دوشنبه 23 اسفند 1389, 23:41 عصر
من منظورم اینه که :
بتونم خود فرم را با down کردن ماوس بهمراه حرکت آن فرم را به اون نقطه رها شدن ماوس ببرم(البته درصورتی کهborder style فرم برابر صفر باشد):متفکر:
knight-rak
سه شنبه 24 اسفند 1389, 00:12 صبح
چرا این تاپیک دوجا هستش ؟؟؟؟
یکی اینو یا ادغام کنه یا یکیش رو حذف کنه
اگر جابجایی فرم که خودش خاصیت drag & drop نداره
میشه از left و top استفاده کرد به صورت زیر ( ولی ظاهر خوشی نداره )
تو رویداد mouse move بنویسید :
If Button = 1 Then
Me.Left = X
Me.Top = Y
End If
یا اینکه خود فرم رو با دستوراتی که فرم رو نامرئی ( transparent ) میکرد فرم رو پنهان کنیم و یه شی رو روی اون با درگ کردن جابجا کنیم
البته مطمئنا راه های درست و منطقی تری وجود داره ( ولی من بی خبرم )
موفق باشید ....
محسن واژدی
سه شنبه 24 اسفند 1389, 00:34 صبح
سلام علیکم
برای حرکت دادن یک فرم بدون border با کلیک کردن موس
موفق باشید
یاعلی
"juggle"
سه شنبه 24 اسفند 1389, 06:40 صبح
شرمنده
در اصل میخوام هر وقت ماوس روی فرم بدون border قرار گرفت رنگ قرمز عوض شه و وقتی از روی فرم عبور کرد ودر جایی دیگر از screen قرار گرفت رنگش به خالت اول برگرده؟:متفکر:
محسن واژدی
سه شنبه 24 اسفند 1389, 07:53 صبح
شرمنده
در اصل میخوام هر وقت ماوس روی فرم بدون border قرار گرفت رنگ قرمز عوض شه و وقتی از روی فرم عبور کرد ودر جایی دیگر از screen قرار گرفت رنگش به خالت اول برگرده؟:متفکر:
سلام
این یک سوال جدید است و بهتر بود در یک تاپیک جدید نیز مطرح مینمودید
از توابع Capture استفاده میشود، طبق نمونه زیر
موفق باشید
یاعلی
"juggle"
سه شنبه 24 اسفند 1389, 08:09 صبح
میخوام دوباره برگرده
این دوباره بر نمیگرده
یعنی وقتی از روی فرم عبور کرد وبه جای دیگر دسکتاپ رفت دوباره رنگش سفید شه؟:متفکر:
"juggle"
سه شنبه 24 اسفند 1389, 08:12 صبح
این x , y که شما مقایسه میکنید x ,y فرمه و 0,0 اون از اول فرم شروع میشه
من x,y دسکتاپ رو میخوام
محسن واژدی
سه شنبه 24 اسفند 1389, 12:42 عصر
این x , y که شما مقایسه میکنید x ,y فرمه و 0,0 اون از اول فرم شروع میشه
من x,y دسکتاپ رو میخوام
برای اینکار باید از توابع GetWindwPosition و GetMoustPosition استفاده کنید
موفق باشید
"juggle"
سه شنبه 24 اسفند 1389, 22:33 عصر
میشه راهنماییم کنید؟:چشمک:
محسن واژدی
سه شنبه 24 اسفند 1389, 23:31 عصر
سلام
مجددا" سورس قبل را ویرایش کردم اما اینبار دو تابعی عرض شده به آن اضافه شده، اینگونه مشکل برطرف میشود
موفق باشید
یاعلی
setroyd
شنبه 28 اسفند 1389, 04:04 صبح
Option Explicit
Dim OldX As Integer, OldY As Integer
Dim blnMove As Boolean
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
blnMove = True
OldX = X
OldY = Y
Me.BackColor = vbRed
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If blnMove = True Then
Me.Left = Me.Left + (X - OldX)
Me.Top = Me.Top + (Y - OldY)
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.Left = Me.Left + (X - OldX)
Me.Top = Me.Top + (Y - OldY)
Me.BackColor = vbWhite
blnMove = False
End Sub
faghat border styleto khodet tanzim kon tashakoram beghole bachaha yadet nare :چشمک:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.