كيف يمكنني استخدام المفاتيح الوظيفية مع تطبيق يستند إلى CDialog في نظام التشغيل Windows Mobile 6 عبر MFC؟

StackOverflow https://stackoverflow.com/questions/105731

  •  01-07-2019
  •  | 
  •  

سؤال

كيف يمكنني استخدام المفاتيح الوظيفية مع تطبيق يستند إلى CDialog في نظام التشغيل Windows Mobile 6 عبر MFC؟

لدي تطبيق Windows Mobile 6 (شاشة تعمل باللمس) يعتمد على CDialog وأعمل عليه.

السلوك الافتراضي للتطبيق المستند إلى CDialog في WM6 Professional هو عدم استخدام أي مفاتيح وظيفية بشكل افتراضي...أريد تعيين المفاتيح الوظيفية لوظيفة "إلغاء" و"موافق" التي ترسل IDOK وIDCANCEL إلى فئة الحوار الرئيسي الخاصة بي.

لقد كنت أحاول العمل مع CCommandBar دون أن يحالفني الحظ، ولم يكن SHCreateMenuBar مناسبًا لي أيضًا.

هل لدى أي شخص عينة لكيفية تشغيل هذا؟

هل كانت مفيدة؟

المحلول

ما هو "لا يعمل" مع CCommandBar بالنسبة لك؟يجب أن تكون قادرًا على إضافة عضو CCommandBar إلى فئة الحوار الخاصة بك، ثم في InitDialog الخاص بـ DIAlog، يمكنك الاتصال بـ Create وInsertMenuBar على شريط الأوامر - شيء من هذا القبيل:

m_cmdBar.Create(this);
m_cmdBar.InsertMenuBar(IDR_MENU_RESRC_ID);

قد يبدو مورد القائمة لديك كما يلي:

IDR_MENU_RESRC_ID MENU DISCARDABLE
BEGIN
MENUITEM "OK", IDOK
MENUITEM "Cancel", IDCANCEL
END

نصائح أخرى

شكراً جزيلاً...لقد كنت مجنوناً بهذا...

الكود الخاص بك يعمل تمامًا كما هو متوقع ...

في البداية استخدمته وحصلت على نفس النتائج، وستكون منطقة المفتاح الوظيفي فارغة باستثناء زر إدخال SIP.

بعد ساعة أو نحو ذلك من تصحيح الأخطاء حاولت وضع هذين السطرين من التعليمات البرمجية في نهاية OnInitDIalog() الخاص بي وقد نجح الأمر :)

مشكلتي تنتهي بكونها في OnIitDialog() الخاص بي أقوم بإنشاء بعض مربعات الحوار الفرعية.عندما أضع CCommandBar.InsertMenuBar() قبل أن أقوم بإنشاء مربعات حوار تابعة، لا أحصل على المفاتيح الوظيفية "موافق" أو "إلغاء"، وعندما أضع هذا السطر بعد إنشاء مربعات حوار تابعة، تظهر المفاتيح الوظيفية كما هو متوقع وتعمل بشكل رائع.

شكرًا لك مرة أخرى

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top