با عرض سلام خدمت دوستان محترم
دو تا سوال داشتم و میخواستم منو راهنمایی کنید.در VB6
1- در یک فرم 5 تا CommadButton قرار دارد . می خواهم وقتی اشاره گر ماوس روی یکی از دکمه ها رفت و اگر کاربر دکمه وسط ماوس را چرخاند(منظورم کلیک کردن دکمه وسط ماوس نیست) فوکوس بین این دکمه ها حرکت کند.یعنی فوکوس بینشون بچرخه.(ابتدا فوکوس روی آن دکمه ای که هستیم و بعد روی دکمه بعدی و ...)
توی vbAccelerator یه مثال هست ولی بایستی ابتدا دکمه وسط رو کلیک کنیم و بعد ماوس را حرکت دهیم
یه تابع Mouse_event هست نمیدونم میشه کاریش کرد یا نه؟
2- چطور يك برنامه را به SysTray و قسمت Notifycations بفرستيم كه وقتي ميخواهد به اين قسمت برود اگر taskbar در قسمت پايين desktop بود مستقيم به اين قسمت برود يعني مستقيم به سمت راست مينيمايز شود(مانند windows messanger) و بعد از آن يك ballon tip را نمايش دهد.
کدهايي که ديدم ابتدا فرم مينيمايز به سمت چپ شده بعد در قسمت Notifycation قرار ميگيرد(در صورتی که showinTaskbar برابر فالس باشد). در غیر اینصورت نیز ابتدا مینیمایز میشود و بعد مخفی شده و در Notifycations قرار میگیرد؟
متشکرم
اساتید کجایین منتظرم....
(۱۴-مرداد-۱۳۸۸, ۰۲:۲۰:۵۳)dcamera نوشته است: [ -> ]2- چطور يك برنامه را به SysTray و قسمت Notifycations بفرستيم كه وقتي ميخواهد به اين قسمت برود اگر taskbar در قسمت پايين desktop بود مستقيم به اين قسمت برود يعني مستقيم به سمت راست مينيمايز شود(مانند windows messanger) و بعد از آن يك ballon tip را نمايش دهد.
کدهايي که ديدم ابتدا فرم مينيمايز به سمت چپ شده بعد در قسمت Notifycation قرار ميگيرد(در صورتی که showinTaskbar برابر فالس باشد). در غیر اینصورت نیز ابتدا مینیمایز میشود و بعد مخفی شده و در Notifycations قرار میگیرد؟
متشکرم
برای اینکه فرمت مینیمایز نشه باید :
1. بگی که توی SYStray نمایش بده
2. فرمت رو آنلود کنی >>> unload me
سلام.
کدتو بذار.
ضمنا فرم نباید آنلود کنی. میتونی بگی me.hide
بسیار از دوستان متشکرم بابت لطفی که کردن و پاسخی که دادن
[quote='toopdanlod' pid='92829' dateline='1249603066']
برای اینکه فرمت مینیمایز نشه باید :
1. بگی که توی SYStray نمایش بده
2. فرمت رو آنلود کنی >>> unload me
[/quote]
جناب toopdanlod عزیز فکر کنم نتونستم خوب منظورمو بگم . سوال دوم من اینه که یه برنامه می خوام بنویسم که مثل Windows Messenger به SysyTray برود.منظورم روی مینیمایز شدن/نشدن فرم نیست
خیلی تابلوه ببینین متوجه میشین
[quote='Payman62' pid='92862' dateline='1249645804']
سلام.
کدتو بذار.
ضمنا فرم نباید آنلود کنی. میتونی بگی me.hide
[/quote]
جناب Payman62 عزیز من هنوز ننوشتمش اما سورسهای بسیاری دارم و بعضی ها هم خیلی خیلی کامل هستمن اما نمیتونن مثل Windows Messenger به سیس تری برن. اولی رو هم که اصلا بلد نیستم(تغییر فوکوس دکمه ها)
[quote]
[quote='hamed_Arfaee' pid='92899' dateline='1249675041']
تغییر فوکوس با چرخ ماوس
[/quote]
جناب hamed_Arfaee عزیز خیلی ممنون بابت کدی که قرار دادین . اما یه مشکلی هست. به محضه اینکه برنامه اجرا بشه از هر جایی از صفحه اکرین عمل Middle mouse Move انجام بشه فوکوس ها تغییر میکنه. اما من منظ.رم این بود که وقتی کرسر ماوس روی یکی از تکست باکس ها (یا باتن ها) رفت اینطوری بشه؟
فایرفوکس 3 رو دیدن که وقتی مثلا چندیدن تب در یک صفحه باز بشن و کرسر رو به روی این تب ها ببریم یک عملی انجام میدهد
شبیه این کدی که فرستادینو داشتم .جناب Andrija Radovic در پروژه BigNum20 اونو برای کومبو پیاده کرده بود
بازم از همه ممنون
برای این که عمل فوکوس فقط روی چند شی خاص جابجا بشه باید بقیه عناصر خاصیت TabStop نداشته باشن (یعنی براشون غیرفعال باشه)
میتونین محدوده ای که دکمه هاتون اونجا قرار دارن رو یه شی حامل مثل فریم انتخاب کنین و موقعی که ماوس وارد اون ناحیه شد یه جایی ثبت کنین و موقع چرخش چرخ ماوس بررسی کنید که آیا نشانگر ماوس در ناحیه مشخصه هست یا نه (همون متغییری که مقدار دهی شده) اگه متغییر اشاره به وجود اشاره گر در ناحیه مورد نظر رو داشت میتونین عمل تغییر فوکوس رو انجام بدین . به همین سادگی .
البته چون شما کدی مشابه این دارین دیگه فکر نکنم نیاز باشه کدی بدم .
(۱۷-مرداد-۱۳۸۸, ۰۲:۳۷:۱۷)dcamera نوشته است: [ -> ]سوال دوم من اینه که یه برنامه می خوام بنویسم که مثل Windows Messenger به SysyTray برود.منظورم روی مینیمایز شدن/نشدن فرم نیست
خیلی تابلوه ببینین متوجه میشین
جناب Payman62 عزیز من هنوز ننوشتمش اما سورسهای بسیاری دارم و بعضی ها هم خیلی خیلی کامل هستمن اما نمیتونن مثل Windows Messenger به سیس تری برن.
شما هنوز برنامه رو ننوشتین ، میخواهین سمت بسته شدن برنامه رو انتخاب کنین

نکته :با قسمت نمایش در سیستم ترای کاری ندارم .
برای جهت بسته شدن فرم باید خودت کلک بزن اونطوری نشون بده
اینم یه نمونه :
یه تایمر بذار رو فرمت و این کدو بنویس :
کد:
Private Sub Form_Load()
Timer1.Enabled = False: Timer1.Interval = 1
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = 1
Me.Height = 0
Me.Width = 0
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Me.Top = Me.Top + 500
Me.Left = Me.Left + 500
If Me.Top > Screen.Height Or Me.Left > Screen.Width Then End
End Sub
با یکمی دستکاری میتونین حالت دلخواه رو بوجود بیارین .
نقل قول: شما هنوز برنامه رو ننوشتین ، میخواهین سمت بسته شدن برنامه رو انتخاب کنین Biggrin
راستش منظورم این بود که برنامه ای که به این حالت باشه رو ننوشتم ولی کد+کامپوننت های زیادی درباره systray دارم که هیچ کدوم اینحالت رو نداشتن . و برام سوال شده بود که چطور میشه ایکارو کرد
کدی که نوشتین رو امتحان نکردم . بعد از تست میام
خیلی متشکرم
سلام خدمت دوستان محترم
آقاي hamed_Arfaee داشتم کدي که گذاشتين رو تغيير ميدادم تا به جوابم برسم اما يه چيزي يادم اومد.
اين کد کاربردي براي اينکه فرممون مثل windows messenger آنلود بشه نداره چون اگه دقت کنين و اگه تسکبار به هرسمتي از صفحه دسکتاپ باشه (پايين - بالا - چپ - راست ) windows messenger باز هم به آنصورت آنلود ميشه
در حالي که اين کد خيلي استاتيک هست
در اين حالت بايستي بدونيم که تسکبار کدوم طرف دسکتاپ قرار داره؟؟ راهي هست؟؟
راجع به تغيير فوکوس هم به جايي نرسيدم راستش اون کدي که من از اول داشتم توش چيزي سردرنياوردم براي همين اين موضوع رو پرسيدم .. اگه امکانش هست کاري بکنين که با رفتن با رفتن ماوس روي دکمه ها اين عمل انجام بشه و کدشو بزارين ممنون ميشم..
راستش من هدف اصليم تغيير فوکوس نبوده . ميخواستم اگه ماوس روي چند کنترل همنوع( يا غير همنوع مثلا چندتا باتون /چندتا کمبو با چندتا ليبل و....)رفت و دکمه وسطو چرخونديم يه عملي که ما بهش گفتيمو انجام بده.. از اول اصلا روي TABIndex و ... فکر نکرده بودم.
خيلي خيلي ممنون
دوستان همچنان منتظر جوابتون هستم