أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

كيفية استخدام فئة CFormView في تطبيقات واجهة (MDI) مستند متعددة "و" واجهة مستند مفردة (SDI)

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

اضغط هنا لرابط المقالة باللغة الانجليزية98598
ملاحظة يعتمد Microsoft Visual C++ .NET (2002) نموذج التعليمات البرمجية المدارة التي تم توفيرها من قبل Microsoft .NET Framework وبصورة نموذج التعليمات البرمجية غير المُدارة Microsoft Windows الأصلي. تنطبق المعلومات الواردة في هذه المقالة فقط على التعليمات البرمجية غير المُدارة Visual C++.

ملاحظة يعتمد Microsoft Visual C++ 2005 نموذج التعليمات البرمجية المدارة التي تم توفيرها من قبل Microsoft .NET Framework وبصورة نموذج التعليمات البرمجية غير المُدارة Microsoft Windows الأصلي.
الموجز
فئة CFormView يوفر طريقة ملائمة لوضع عناصر التحكم في طريقة عرض التي تستند إلى قالب مربع حوار. إجراء عام لاستخدام CFormView موصوف في الوثائق الخاصة الفئة ثم موضحة في تطبيقات نموذج VIEWEX و CHKBOOK توفير مع 2.x الإصدارات فئات Foundation لـ Microsoft "(MFC) أعلاه. ومع ذلك، هذه التطبيقات لا توضح إجراء الحجم الأولي من إطار الإطار نفسه الحجم الأولي من النموذج.

يسرد المقطع التالي الخطوات المطلوبة لدعم إنشاء واجهة مستند مفردة (SDI) أو متعددة مستند (MDI) واجهة تطبيق يستند إلى CFormView تغيير حجم إطار الإطار الأولي حول النموذج تغيير نمط الإطار وإغلاق مستند MDI باستخدام زر في النموذج.
معلومات أخرى
تصف الخطوات التالية كيفية إنشاء AppWizard MFC التطبيق يستخدم في CFormView كطريقة عرض افتراضية:
  1. استخدم AppWizard لإنشاء تطبيق SDI أو MDI. يؤدي هذا إلى إدراج قالب مربع حوار بأنماط الصحيحة تعيين ملف مورد المشروع الخاص بك.

    Visual Studio 6.0:

    في الخطوة 6 من AppWizard تحديد فئة طريقة العرض. في مربع التحرير والسرد الفئة الأساسية حدد CFormView لتحديد CFormView الفئة الأساسية.

    Visual Studio .NET أو Visual Studio 2005:

    في الخطوة 1 من AppWizard حدد فئات المكوّنة. في مربع التحرير والسرد الفئة الأساسية حدد CFormView لتحديد CFormView الفئة الأساسية.
  2. تجاوز الدالة العضو OnUpdate() واستدعاء UpdateData() كما توثيق في وثائق CFormView تحديث متغيرات عضو البيانات المستند الحالي ثم تنفيذ البيانات الحوار تبادل (DDX).

    ملاحظة: UpdateData غير الظاهري ويضمن استدعاء الفئة الأساسية التي تسمى DoDataExchange خلال التعدد القياسية في فئة مشتقة. تجاوز حالات وثائق CFormView الاتصال، لا UpdateData.
  3. إذا كنت ترغب في تعيين الحجم الأولي من طريقة العرض "نموذج" تجاوز دالة OnInitialUpdate(). النص الموجود أدناه يوفر معلومات إضافية حول هذه الخطوة، قم مختلفة قليلاً في تطبيق SDI أو MDI.

تغيير حجم الإطار الرئيسي SDI حول CFormView

لتغيير حجم الإطار الرئيسي SDI تطبيق (يستخدم CFormView كفئة طريقة العرض الخاصة به) أن يكون حجم المناسب للنموذج تم تصميمها في تطبيقات Studio تجاوز دالة OnInitialUpdate() في الفصل الدراسي مشتقة من CFormView ، كما يلي:
      void CMyFormView::OnInitialUpdate()      {         CFormView::OnInitialUpdate();         GetParentFrame()->RecalcLayout();         ResizeParentToFit(); // default argument is TRUE      }				
لا يمنع الدالة ResizeParentToFit() النموذج من تغيير حجم عندما يقوم المستخدم بتغيير حجم إطار التطبيق الرئيسي (أشرطة التمرير يتم إضافة تلقائياً إذا لزم الأمر). لتعديل نمط إطار الإطار الأصل طريقة عرض نموذج, يمكنك تجاوز دالة PreCreateWindow() في فئة CMainFrame التي تم إنشاؤها بواسطة AppWizard. على سبيل المثال، إلى إزالة نمط WS_THICKFRAME منع المستخدم من تغيير حجم الإطار, تقوم بتعريف PreCreateWindow() في MAINFRM.H وإضافة التعليمة البرمجية التالية إلى MAINFRM.CPP:
      BOOL CMainFrame::PreCreateWindow(CREATESTRUCT &cs)      {         cs.style &= ~WS_THICKFRAME;         return CFrameWnd::PreCreateWindow(cs);      }				

تغيير حجم الإطارات التابعة MDI حول CFormView

يشبه عملية تغيير حجم إطار MDI التابع إلى تغيير حجم إطار رئيسي لأحد التطبيقات SDI كما هو موضح أعلاه. ومع ذلك، استدعاء RecalcLayout() غير مطلوب.

لتغيير حجم إطار MDI التابع حول طريقة عرض نموذج تجاوز دالة OnInitialUpdate() في الفصل الدراسي مشتقة من CFormView كما يلي:
      void CMDIFormView::OnInitialUpdate()      {         CFormView::OnInitialUpdate();         ResizeParentToFit(); // Default argument is TRUE.      }				
إذا تجاوز التطبيق الوسيطة الافتراضية للدالة ResizeParentToFit() ، تحدث نفس النتائج بشكل أساسي عن تطبيق SDI كما هو موضح أعلاه. بالإضافة إلى ذلك، قد يكون الإطار الفرعي كبير جداً في الإطار الرئيسي MDI مُضمنة أو الشاشة بالكامل.

لتغيير نمط الإطار التابع MDI (على سبيل المثال، لإزالة نمط WS_THICKFRAME بحيث لا يمكن للمستخدم تغيير حجم الإطار) اشتقاق دراسي إطار MDI تابع وتجاوز الدالة PreCreateWindow كما هو موضّح في المثال SDI أعلاه.

إغلاق نموذج MDI مع زر

لإنشاء زر في نموذج إغلاق المستند إضافة معالج رسالة لرسالة BN_CLICKED إلى فئة CFormView. تأكد من أن الأزرار الموجودة في CFormView لا يكون لها معرّفات IDOK أو IDCANCEL الافتراضي. إذا كانت بذلك، ثم سيتم إنشاء إدخالات غير صحيحة في مخطط رسالة والدالات غير صحيح الأزرار.

بمجرد معالج رسالة في مكان يمكنك محاكاة الأمر "إغلاق" في "ملف" القائمة مع التعليمات البرمجية التالية:
      void CMyForm::OnClickedButton1()      {         PostMessage(WM_COMMAND, ID_FILE_CLOSE);      }				
هذه الطريقة لإغلاق نموذج يطالب المستخدم لحفظ الملف في حالة إرجاع الدالة العضو IsModified() المقترنة بالمستند TRUE.
kbfasttips

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

خصائص

رقم الموضوع: 98598 - آخر مراجعة: 01/05/2006 01:11:56 - المراجعة: 4.0

Microsoft Foundation Class Library 4.2

  • kbmt kbdocview kbhowto kbmdi kbuidesign KB98598 KbMtar
تعليقات
;did=1&t=">