PDA

View Full Version : گذاشتن Accelerator برای برنامه دیالوگی



Moharram
یک شنبه 25 آذر 1386, 16:31 عصر
سلام

برای برنامه دیالوگی MFC که منو هم داره میخوام Accelerator بذارم، یعنی بشه با ShortCut گزینه های منو را انتخاب کرد.

منتظر راهنمایی های دوستان هستم...

Moharram
چهارشنبه 08 اسفند 1386, 09:41 صبح
کسی نیست یه راهنمایی به ما بده ...

چجور میشه از Hot Key استفاده کرد ...
شاید بتونه این منظور رو فراهم کنه

Nima_NF
چهارشنبه 08 اسفند 1386, 15:16 عصر
در بخش resource خود یک accelerator اضافه کنید و در آن شروع به پر کردن اطلاعات کنید ، فقط توجه کنید که تمامی ID ها باید قبلا برایشان عمل خاصی تعریف شده باشد ، به عنوان مثال به این شکل:




ID_FILE_OPEN / Ctrl / O / VIRTKEY

A_Salimi
چهارشنبه 08 اسفند 1386, 15:50 عصر
با اجازه از دوستان :
تا جایی که تجربه من قطع میده و در کتابها دیدم برای پروژه های dialog base شتاب دهنده نمیشه تعریف کرد (یعنی تعریف میشه ولی در این برنامه ها کار نمیکنه ) به کتاب برنامه نویسی با ویژوال سی پلاس پلاس مهندس جعفرنژاد قمی صفحه 206 مراجعه کنید .

Nima_NF
چهارشنبه 08 اسفند 1386, 19:25 عصر
با اجازه از دوستان :
تا جایی که تجربه من قطع میده و در کتابها دیدم برای پروژه های dialog base شتاب دهنده نمیشه تعریف کرد (یعنی تعریف میشه ولی در این برنامه ها کار نمیکنه ) به کتاب برنامه نویسی با ویژوال سی پلاس پلاس مهندس جعفرنژاد قمی صفحه 206 مراجعه کنید .

تشکر ، من به سوال خوب توجه نکردم که در مورد دیالوگ ها درخواست کردند.

در هر حال این کار شدنی هست ، چون دیالوگ های modal در قسمت پیام ها پردازشی برای accelerator نمی کنند شما باید از طریق بارگذاری ProcessMessageFilter و سپس در داخل آن پیام ها را با TranslateAccelerator پردازش کنید تا بتواند از همان جدول گفته شده در پست قبلی استفاده کنید ، ضمنا load کردن جدول هم فراموش نشود. (این روش به راهکار مایکروسافت معروف هست)

این هم یک لینک که روش کار را نشان می دهد:
http://support.microsoft.com/kb/100770

نمی دانستم آقای جعفر نژاد قمی کتاب برای ++VC هم نوشته است !

موفق باشید

Moharram
یک شنبه 12 اسفند 1386, 19:06 عصر
با تشکر از Nima_NF

مشکل حل شد.

یه Sample هم ضمیمه شده که همون راه حل مایکروسافتو پیاده کرده...