سنتعرض في هذه الفائدة لجملة معروفة في معظم لغات البرمج وهي ال case .
في البداية ابدا بعمل مشروع mfc وادخل اداة ال Edit وهي التي تمكن للمستخدم من ادخال قيم فيها (معروفة:) )
ثم اضف اداة ال Button .
اذهب الى ال Class wizard وذلك من قائمة view ومن ثم من علامة التبويب Member Variable اختر الاداة التي ادرجتها وهي ال Edit .
بعدها اضغط على زر Add Variable لكي تضيف متغير من فئة هذا النوع (Edit) وسميه m_sresult. واختر value من ال category . وذلك لكي يكون التعامل مع القيمة المدخلة وليس مع كنترول الاداة .
اغلق ال class wizard واضغط مرتين على الزر button لكي تضيف وظيفة لهذه الاداة . وادخل هذا الكود
كود
int iresult
iresult = MessageBox("press the yes, no, or cancel button","y,n,cncl diag",MB_YESNOCANCEL | MB_ICONINFORMATION);
switch(iresult)
{
case IDYES:
m_sresult = "yes";
break;
case IDNO:
m_sresult = "no";
break;
case IDCANCEL:
m_sresult = "sorry,canceled";
break;
}
UpdateData(FALSE);
}في البداية عرفت متغير من نوع int .
وفي السطر الثاني توجد الدالة messgaebox من النوع الذي يعرض 3 ازرار yes , no ,cancel . وعرفتها جميعا للمتغير iresult .
الان نبدا في الموضوع الاصلي . كلمة switch تعني اختر واحد من الاحتمالات التالية .
والكلمة iresult هو المتغير الذي اضيف للدالة صاحبة 3 ازرار يعني 3 اختيارات .
الحالة الاولى : ان يكون زر yes هو الذي ضغط عليه المستخدم (IDYES)
وبالتالي نعطيه امر بان يكتب في المتغير التابع للاداة Edit كلمة yes .
وبعدها نكتب كلمة break لكي نخبر الفيجوال سي++ بانتهاء الاحتمال الاول .
اما الاحتمال الثاني والثالث فتكون بنفس الطريقة وهي IDNO و IDCANEL .
نغلق القوس ونضيف الدالة (UpdateData(FALSE وذلك لتحديث بيانات المتغيرات .
لدي ملاحظة وهي ان في الفيجوال بيسك كلمة select تاتي مكان كلمة switch في الفيجوال سي++ .
اسال الله العلي القدير ان ينفعنا بكل ما هو خير . وارجو من الجميع كتابة الملحظات والاسئلة والمناقشات . لان هذا الموضوع لم انقله من موقع ا كتاب او اي مصدر وانما بحسب فهمي لقراءة كتاب . وبالتالي اتوقع ان الشرح يحتوي على اخطاء .
هذا والله اعلم .
اجو من المشرفين ان يعدلو في شكل الكود ليظهر بالشكل الصحيح . لاني حاولت لكن مافي فايدة .