PDA

View Full Version : حرفه ای: نمایش منوی راست کلیک



Hossis
شنبه 14 خرداد 1390, 20:42 عصر
فرض کنید در یک لیست، نام و آدرس فایل را داریم، حالا می خواهیم با راست کلیک روی این لیست و این عنوان، منوی راست کلیک ویندوز نشون داده بشه
در این مورد اگر راهنمایی کنید ممنون هستم

Hossis
پنج شنبه 19 خرداد 1390, 19:58 عصر
اگر کسی یک سایت یا مطلبی در این رابطه می شناسه ، آدرس بده
خیلی نیاز دارم
ممنون

milad.biroonvand
پنج شنبه 19 خرداد 1390, 20:40 عصر
سلام

میخوای با راست کلیک کنار ساعت ، منویی ظاهر بشه و با کلیک راست کردن رو اون یه برنامه ویندوز باز شه . اگه میشه یکم دقیق تر بگو ، فک کنم دقیقا این برنامه رو داشته باشم .

Navid Asadi
جمعه 20 خرداد 1390, 13:55 عصر
منظور از داست کلیک ویندوز چیه؟

اگه منوی راست کلیک میخوای یه contextMenustrip درست کن و بعد اون رو تو ویژگی contextMenustrip کنترلت انتخاب کن...

R_Rajaee_Rad
جمعه 20 خرداد 1390, 15:10 عصر
بعدش چه طوری برای آیتم های contextMenustrip برنامه بنویسیم؟
مثلا اگر کاربر آیتم 1 از contextMenustrip فلان کار رو انجام بده
اگر آیتم 2 از contextMenustrip کار دیگه و....
ممنونم

manmaaram
جمعه 20 خرداد 1390, 16:11 عصر
کافیه روی گزینه هایی که در منوی Context طراحی کردی دابل کلیک کنی و واسش کد بنویسی
کار سختی نیست

Hossis
جمعه 20 خرداد 1390, 20:00 عصر
این هایی که شما ها گفتید خیلی ابتداییه و خودم به راحتی انجام دادم
بگذارید با مثال توضیح بدم
شما یک لیست باکس از فایل های یک پوشه درست کردید مثل MyDocument يا My Music
توی این لیست، می خواهید روی هر فایل که راست کلیک شد، منوی راست کلیکی که در ویندوز اکسپلورر هست، نشون داده بشه (مث تصویر ضمیمه)
یعنی منوی راست کلیک ویندوز (که برای هر نوع فایل متفاوته) روی برنامه شما و در لیست باکس یا هر کنترل دیگر نمایش داده شود

Saman_12
شنبه 21 خرداد 1390, 01:08 صبح
هر منویی یک والد دارد و منوی ویندوز نیز از این امر مستثنا نیست.با داشتن هندل این منو به میشه کنترل مورد نیاز رو روش داشت برای این کار شما باید هندل پنجره (یا هر آبجکت دیگری که والد منو هست) رو به دست بیارین خوب این کار برای منو هایی که ولدشون مشخصه راحت هست و کاری نداره اما وقتی ندونیم والد منو چه آبجکتی هست و خودش چیلد کدوم پنجره هست کار ساده ای نیست(کلا غییر ممکن هست).
من اطلاعاتم در این زمینه کمه پس ترجیحا اظهار نظر نمی کنم ولی برای به دست اوردن هندل منو با استفاده از هندل والد میشه از API GetMenu استفاده کرد بعد با داشتن هندل طبیعتا میشه اون رو کنترل کرد اما درمورد متفاوت بودن منو مربوطه برای هر فایل و ... چیزی به ذهنم نمیرسه.(البته به این نکته توجه داسته باشین که منو برای هر فایل متفاوت نیست بلکه بسته به نوع فایل متفات هست برای مثال منوی مربوط به یک فایل exe با منوی مربوط به exe دیگر کاملا شبیه به هم هست!)

Saman_12
شنبه 21 خرداد 1390, 01:15 صبح
عذر می خوام من نظرم عوض شد!!
فکر نکنم با داشتن هندل منو بشه کاری کرد(شایدم بشه نمیدونم!) آخه الان با استفاده از یک برنامه نگاهی به هندل مربوطه انداختم هندل هر بار که منو نشون داده میشه تغییر میکنه و ثابت نیست!(البته من نمونه برنامه هایی رو دیدم که با استفاده از هندل منو روی اون تغییر ایجاد میکنند!)
حداقل کلاس منو رو به دست آوردم.(کلاس منو #32768 هست.)

Hossis
یک شنبه 22 خرداد 1390, 16:06 عصر
کلاس منو را از کجا بدست آوردید؟؟
بعد ازآن چه باید کرد؟؟
کمی توضیح دهید

alimanam
یک شنبه 22 خرداد 1390, 20:54 عصر
با سلام

این کار به راحتی امکان پذیر هستش به این سورس (http://www.codeproject.com/KB/cs/appendmenu.aspx) یا این سورس (http://www.codeproject.com/KB/shell/SimpleContextMenu.aspx) توجه کن مشکلتون حل میشه .

منبع (http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/86a088a5-1716-408d-b87b-b5e872e7c75f/)

موفق باشید ./

Hossis
یک شنبه 22 خرداد 1390, 22:01 عصر
با سلام

این کار به راحتی امکان پذیر هستش به این سورس (http://www.codeproject.com/KB/cs/appendmenu.aspx) یا این سورس (http://www.codeproject.com/KB/shell/SimpleContextMenu.aspx) توجه کن مشکلتون حل میشه .

منبع (http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/86a088a5-1716-408d-b87b-b5e872e7c75f/)

موفق باشید ./

این سورس ها مال اضافه کردن یک آیتم به منوی راست کلیک هست
ولی من می خواهم در برنامه خودم یعنی در یک لیست ویو یا لیست باکس که نام فایلها رو داره، این منو رو به نمایش در بیارم
درمجموع از لطفا شما هم سپاسگزارم

Hossis
یک شنبه 22 خرداد 1390, 22:12 عصر
البته توی همون سایت به زبان سی شارپ چند تا سورس هست ولی من چیزی ازش نفهمیدم چون پروژه اش خیلی سنگین بود
این هم آدرسش http://www.codeproject.com/KB/miscctrl/FileBrowser.aspx