INFO: إنشاء مربع حوار غير مشروط مع مكتبات MFC

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية103788
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
يوضح هذا المقال كيفية إنشاء مربع حوار غير مشروط باستخدام مورد قالب مربع حوار باستخدام MFC.

لإنشاء مربع حوار CModeless يجب أن تتبع الخطوات التالية:

  1. إنشاء فئة حوار مشتقة من CDialog وتجاوز الدالة العضو Create() CDialog. على سبيل المثال، قد يكون لديك تعليمة برمجية مشابهة لما يلي:
          class CModeless: public CDialog           {             .             .             .             public:                 CModeless(){ }                 BOOL Create(UINT nID, CWnd * pWnd)                      { return CDialog::Create(nID,pWnd);}             .             .             .           };				
    ملاحظة: قد تسمح لك ClassWizard إنشاء فئة الحوار ثم قم بإضافة دالة Create() ببساطة.
  2. كتابة تعليمة برمجية إنشاء كائن فئة الحوار وقم بإنشاء إطار مربع الحوار. على سبيل المثال، إذا كان لديك عنصر قائمة الذي يجب عرض مربع الحوار قد يكون لديك تعليمة برمجية مشابهة لما يلي:
          void CMainFrame::OnModeless()        {            pdlg = new CModeless;            pdlg->Create(IDD_DIALOG1,this);        }				
    حيث يتم تعريف CMainFrame::pdlg كـ:
    CModeless * pdlg;
    ملاحظة: إنه الهامة تخصيص الكائن على كومة الذاكرة المؤقتة بدلاً من المكدس إذا كنت تريد منع يتم إتلاف عند إنهاء الدالة مربع حوار غير مشروط.
  3. يجب استدعاء CWnd::DestroyWindow() في OnCancel أو كلما احتاج مربع حوار غير مشروط تلف.
          void CModeless::OnCancel()      {          DestroyWindow();      }				
  4. تجاوز CWnd::PostNcDestroy() في الفصل الدراسي الحوار حذف كائن مربع الحوار:
       virtual void CModeless::PostNcDestroy() {delete this;}				
    PostNcDestroy() هي دالة عضو ظاهري الفئة CWnd يسمى بواسطة الدالة OnNcDestroy().
ستتجاوز فئة حوار غير مشروط عادةً في OnOK() و عضو OnCancel() الدالات لإجراء مكالمة DestroyWindow() لا يجب استدعاء وظائف CDialog::OnOK() و CDialog::OnCancel() الفئة الأساسية. استدعاء الدالات CDialog::OnOK() و CDialog::OnCancel() EndDialog(). يجب استدعاء EndDialog() فقط عند استخدام مربعات حوار مشروطة.

إذا كنت تستخدم تبادل البيانات الحوار (DDX) و التحقق من صحة البيانات الحوار (DDV) ، تقوم معالج OnOK() عن فئة الحوار قد يشبه ما يلي:
   void CModeless::OnOK()   {           if (!UpdateData(TRUE))             {               TRACE0("UpdateData failed during dialog termination\n");               // The UpdateData routine will set focus to correct item               return;             }           DestroyWindow();   }		
الموجز
kbinf 1.00 1.50 2.00 2.10 2.50 2.51 2.52 3.00 3.10 4.00

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 103788 - آخر مراجعة: 12/04/2015 09:42:17 - المراجعة: 3.1

Microsoft Foundation Class Library 4.2

  • kbnosurvey kbarchive kbmt kbdlg kbinfo kbuidesign KB103788 KbMtar
تعليقات