كيف يمكنني إنشاء زر "نعم إلى الكل" باستخدام WINAPI؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

لدينا تطبيق تراث مكتوب في C يستخدم WINAPI. نحن نرغب في إضافة "نعم للجميع" زر لعدد قليل من مربعات الحوار لدينا. لسوء الحظ، فإن وظيفة MESSAGEBOX الحالية لا تسمح الأزرار المخصصة أو تعليق زر.

ما هي أفضل طريقة للقيام بذلك؟ هل هناك الإختراق بقعة لإضافة زر مخصص بسهولة؟ أو يجب أن نخلق لدينا استبدال MESSAGEBOX بك؟

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

المحلول 4

ولقد انتهى مجرد خلق الخاصة قالب المورد استبدال DIALOGEX لدينا، ثم ببساطة استدعاء DialogBox () والتحقق من قيمة الإرجاع.

والمرجعي: http://msdn.microsoft.com /library/ms644996(v=VS.85).aspx#modal_box

نصائح أخرى

وهناك نوع آخر من مربع الرسالة في WINAPI، منذ ويندوز 2000. وفي <لأ href = "http://msdn.microsoft.com/en-us/library/bb773836(VS.85).aspx" يختلط = "نوفولو noreferrer"> SHMessageBoxCheck .

وانها تسمح لك لعرض مستوى MB_OKCANCEL / MB_YESNO / MB_OK من نوع MessageBox مع خيار لتظهر أبدا مرة أخرى، من خلال تحديد التي الخيار الافتراضي في هذه الحالة هو.

وربما انها ليست بالضبط ما كنت أبحث عنه، لكنه يتفق إلى حد ما مع ويندوز واجهة المستخدم.

في فيستا معظم قذيفة على "نعم للجميع" الحوارات فعلا العمل بهذه الطريقة - ليس هناك زر إضافي قائلا "نعم / لا للجميع" - هناك مربع "تنفيذ العمل الذي تم اختياره على جميع البنود" بدلا

ولكن ملاحظة في وثائق يقلقني:

<اقتباس فقرة>   

وهذه هي وظيفة متاحة من خلال نظام التشغيل Microsoft Windows XP و Windows Server 2003. يمكن تغييره أو غير متوفرة في الإصدارات اللاحقة من Windows.

وأنت قد تحتاج أيضا إلى رعاية التفاف النص لجعله على غرار MessageBox. كما يستخدم MessageBox خطا مختلفا بالمقارنة مع الخط واجهة المستخدم الرسومية الافتراضية. و لا تنسى لتشغيل الصوت عندما يظهر مربع الحوار حتى :)

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