الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الفائدة 5 (مربعات الحوار والتعامل معها )

مغلق
بدأه عبدالرحمن في 1 يوليو 2001 · 2 رد · 1,902 مشاهدة · في قسم المواضيع الهامة في قسم السي /سي++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

توفر MFC عدة فئات عامة لنوافذ التخاطب وهذه الفئات هي :-

CFileDialog (انتقاء الملفات)

CFontDialog (انتقاء نمط الحروف)

CColorDialog (انتقاء الالوان)

CPageSetupDialog (اعداد صفحة الطباعة)

CPrintDialog (الطباعة)

CFindReplaceDialog (بحث واستبدال)

مثال لاستخدام مربع حوار فتح الملفات :-

أولا نضع textbox ونضع له متغير نسميه m_t

CFileDialog m_ldFile(TRUE);

if(m_ldFile.DoModal() ==IDOK)

}

;() m_t = m_ldFile.GetFileName

;() UpdateData

{

في اول سطر اعلنا عن متغير من فئة CFileDialog , وهذا المتغير نمرر له الدالة TRUE ليكون مربع حوار فتح , اما لو مررنا الدالة FALSE لعرض مربع حوار حفظ .

وفي السطر الثاني استعدينا الوظيفة DoModal للمتغير

والقيمة المرتجعة تحدد اي زر نقر المستخدم

اذا نقر فتح تعاد القيمة IDOK .

وفي السطر الثالث عرفنا المتغير m_t بالوظيفة GetFileName للمتغير m_ldFile , وهذه الوظيفةتعطيك اسم الملف الذي اختاره المستخدم.

وهناك وظائف كثيرة منها :-

GetFileExt : تعطيك امتداد الملف

GetPathName تعطيك دليل الملف

أما الدالة UpdateData فاني باذن الله سوف اشرحها لاحقا

أو احد الاخوان يتكرم ويشرحها ..

لانني حتى الان لم استوعبها جيدا .

ملاحظة :- اضافة المتغير للاداة تكون كالتالي :_

من القائمة المنسدلة للاداة اختر classwizard ومن اداة التبويب اختر Member Variable اختر العنصر ومن ثم Add Variable .

هذا والله الموفق .

#2

السلام عليكم ..

اذا ما عليكم كلفة تشرحولنا وتوضحولنا وظيفة ال UpdateData

وشكرا ..

#3

شرح UpdateData :

يمكن من خلال الClass Wizard ربط متحولات بالأدوات التي على نافذتك فمثلا يمكن ربط المتحوول m_strTextBox بصندوق نص حيث يكون ذاك التحول من نوع CString ...

إن UpdateData تحتاج إلى تحديد بارامتر واحد (قيمته الافتراضية هي TRUE) وتكون وظيفتها على حسب قيمة البارامتر :

TRUE : يعني أن جميع المتحولات التي قمت باضافتها عن طريق ال Wizard سوف تأخذ القيم الموجودة في عناصر النافذة Controls .

FALSE : سوف يتم تجديد عناصر النافذة بالقيم الجديدة الموجودة في المتحولات ..

فمثلا إذا قمت بكتابة التعليمة ..

UpdateData() فسوف تقوم بنقل ما يحتوي عليه صندوق النص إلى المتحول m_strTextBox .. أما مثلا إن أردت تجديد هذا الصندوق بمعلومات جدبدة فإنك تكتب مثلا ..

m_strTextBox = "New Data";

UpdateData(FALSE);

إن التابع UpdateData يقوم باستدعاء التابع DoDataExchange والتي تحتوي على العديد من توابع ال DDX أو (Dialog Data Exchange) و DDV أو (Dialog Data Validate) . الأولى تقوم بتبادل البيانات من وإلى عناصر التحكم والثانية وظيفتها التأكد من القيمة الموجودة في عناصر التحكم صحيحة . فإذا اختل الشرط المحدد في أي من ال DDV فإن رسالة تظهر إلى المستخدم تخبره بالخطأ (مثلا القيمة خارج المجال المحدد به) ويذهب ال Focus إلى عنصر التحكم الذي خل بهذا الشرط ..

إن التابع DoDataExchange يقوم ال Wizard بالاضافة والتعديل فيه لكن في المراحل المتقدمة يمكنك أن تعدل فيه وتضيف توابع DDV و DDX من برمجتك والتي تدعم أنواع متحولات جديدة ..

هذا بشكل بسيط وأرجو أن تخبرني إذا أردت أن أشرح أكثر..

Coding on the Cloud and for the Cloud!

My Blog

هذا الموضوع مغلق.

مواضيع مشابهة