الـسلامـ عليكمـ
السؤال هو كـيف مثـلا اضغط على زر ويظهر نص في ال Edit Box
وطبعا عن طريق ال MFC_Dialog Based
الـسلامـ عليكمـ
السؤال هو كـيف مثـلا اضغط على زر ويظهر نص في ال Edit Box
وطبعا عن طريق ال MFC_Dialog Based
في الـ MFC يوجد عملية برمجية لهذا الأمر ، ويجب أن تعلم أن ما تكتبه في صندوق التحرير EditBox والذي يسمى في فيحيوال بيسيك تكست بوكس ما تكتبه فيه لا يوضع في متغيلا الا ان تقوم انت بوضعه برمجيا..
أولا وأنت في الديالوج إختر التالي:
View ---->ClassWizard
من النافذة اذهب الى المجموعة Member Variables
سترى قائمة بالأدوات الموجودة عندك على الديالوج.. إختر الآداة الخاصة بالنص (عادة اسمها IDC_EDIT1 ) دبل كليك عليها .. أكتب اسم المتغير الذي سيحتوي على النص.. اي إسم يخطر ببالك (طبعا صالح لأن يكون اسم متغير.)
هنا لديك آداة تحتوي على نص ولديك متغير معد لتلقي هذا النص.. هناك علاقة متبادل بينهما.. يمكنك أن تضع نص في المتغير وتجعل الصندوق يحمل هذا النص، ويمكنك وضع نص في الصندوق وجعل المتغير يحمل هذا النص ... كيف؟؟؟
لنفرض أنك اسميت المتغير m_text حسن
1- لجعل الـ m_text يأخذ المكتوب في صندوق النص قم بالتالي:
UpdateData(TRUE);
هذا معناه تمرير النص من تكست بوكس الى المتغير.
2- ولتمرير قيمة من المتغير الى تكست بوكس تقوم بالتالي:
UpdateData(FALSE);
لنفرض أنك قمت بالخطوة 1 . سيحمل المتغير m_text كل فحوى التكست بوكس ... لعرضه في مسج بوكس قم بالتالي
MessageBox(m_text);
اي سؤال عن شرحي - تفضل.
ملاحظة : هذه العملية التي قمت بها مبسطة... لمعرفة واستخدمت فيها ClassWizard ليكتب بعض الكود ... لمعرفة هذا الكود يمكنك متابعة الشرح ,,
لقد أضاف الـClassWizard الأكواد التالية :
في فئة الديالوج قام بإضافة المتغير الذي اخترت انت اسمه كالتالي:
.... CString m_text;// هذا متغير سلسلة نصية سيحتوي على القيم النصية ....
في دالة
;() DoDataExchange
قام بربط الآداة بالمتغير
DDX_Text(pDX,IDC_EDIT1,m_text);
هذا السطر مكتوب داخل الدالة ;() DoDataExchange والتي تعمل عند مناداتها تعمل على تحديث البيانات بين الآداة والمتغير الخاص بها، بواسطة الدالة DDX وهي دالة لها عدة أشكال أحدها المذكور هنا DDX_Text للتعامل مع صندوق النص.
هناك "أخوة" لهذه الدالة وهم DDX_Radio DDX_Check من اسمائها نعرف لأي نوع من الادوات تعمل.
مررنا للدالة ثلاث برامترات - اثنان واضحان وواحد غريب هذا pDX ما هو : هو مؤشر لكائن من نوع DataExchange وهو يحتوي معلومات منها - ما يهمنا - اتجاه التحديث (من المتغير الى الصندوق أم العكس.) وهذا المؤشر يتم تمريره أصلا الى الدالة
;() DoDataExchange
تم تعديل هذه المشاركة بواسطة إسماعيل ابراهيم في 4 مايو 2006 في 22:07
بعد أن أقوم بإجابة طويلة عريضة ، يختفي العضو ولا يقول اي شيء، طيب كيف اعرف انّي ساعدته ولا كلامي ضاع في الهوى....
اقل شيء يا Uae_coder قول كلمة.. أو حرف يدل على انني لم اتعب هباءً
حتي لو كلامك ضاع معاه فهو لم يضع معنا
جزاكم الله خيرا
شكرا يا إسماعيل , جزاك الله خيرا :)
العفو...
أنا لم أقل هذا الكلام حبّاً في رؤية كلمات الشكر تتهافت,,
لكن أحيانا (وهذا ما حدث) تكون مشغولا فيسأل أحدهم سؤال... إن لم تجب تبدأ الملامة على المنتدى وقاطنيه .. وكأننا لا نساعد..
لهذا ينتزع احدنا نفسه من مشاغله ليجيب عن سؤال. وبعدها لا يرى السائل، ولا يعرف إن كان فهم ام لا ، قرأ الرد أصلا أم لا!! فأشعر "بالندم" على قطعي اشغالي لأجيبه ، وهو ربما نسي السؤال.
هذا الموضوع مغلق.