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

كيف ممكن ربط menu مع dialog ?

مغلق
بدأه رجب النتشة في 14 يوليو 2002 · 7 رد · 737 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم يا إخوان...

كيف ممكن ربط menu مع dialog ?

وجزاكم الله خيراُ...:)

رجب النتشة

Rajab Natshah

#2

بسم الله الرحمن الرحيم

أولاً قم بإنشاء القائمة في محرر القوائم منيو

ثانياً إذهب للديالوج الذي تريد ربط القائمة معه ثم اضغط عليه بالزر الأيمن للفأرة واختر خصائص (موجودة في أخر القائمة التي تظهر لك ).

تظهر الخصائص اختر منها التبويب (جنرال) في الأعلى تجد قائمة منسدلة بجوارها كلمة منيو ثم قم بالذهاب لهذه القائمة واختر منها اسم القائمة الذي صممتها وقم بتشغيل التطبيق تجد القائمة مع المربع الحواري ولك تحياتي

اخوك عيد اكس زيرو زيرو

#3

بسم الله الرحمن الرحيم

شكراً لك أخي عيد..

العمليه تعمل بنجاح فعلاً..:)

لكن هل توجد طريقه لربط العمله في وقت التنفيذ..

مثلاً لو كان عندا ثلاثه منيو وأردت أني بالضغط على bottun معين

يمكنني من تبديل المنيو...

وجزاك الله خيراً...:)

رجب النتشة

Rajab Natshah

#4

بسم الله الرحمن الرحيم

اين أنتم يا إخواني..:)

ألا يوجد حل للمشكله ...

رجب النتشة

Rajab Natshah

#5

أعتذر لك أخي عن التاخر..

- - - -

الطريقة بسيطة:

1) بعد ان يكون عندك ديالوڇ بوكس.. قم بإنشاء قائمتين .. ولا .... لنقل ان المينو الاول اسمه IDR_MENU1 والمينو الثاني IDR_MENU2 ....

2) في الكلاس تبع الديالوج بوكس عرف ثلاث متغيرات عامة: كالتالي:

public:
	int X;// لمساعدتنا في تحديد المنيو
	CMenu Menu2;.   //للمنيو الاول
	CMenu Menu1;     //للمنيو الثاني

الا نلدينا متغيرين من نوع منيو : لننسب لكل واحد من هذه المتغيرات منيو من التي انشأناها نحن.:

في الدالة OnInitDialog() أكتب التالي:

Menu1.LoadMenu(IDR_MENU1);
Menu2.LoadMenu(IDR_MENU2);
X=1;

نسبنا كل منيو لمتغير وعرفنا قيمة ابتدائية للمتغر X .

الان قم بإنشاء زر .. واضغط عليه دبل كليك لتحرير دالته:

أكتب التالي في دالة الزر :

	if(X%2==0)
	{
		SetMenu(&Menu1);
		X++;
	}
	else 
	{
		  SetMenu(&Menu2);
		  X++;
	}

شغل المشروع واضغط على الزر كما تريد :) ..

الشرح :

---------

يمكننا تعريف أو بناء أي عدد من القوائم .. ولكن للتعامل مع هذه القوائم في اثناء عمل البرنامج علينا ان نعرّف متغير "يحمل" هذه القوائم .. النوع CMenu هو نوع القوائم.. عرفنا منه اثنين .. الان.. كيف نعرف لاي قائمة يتبع كل متغير..

لأجل هذا قمنا بـ: Menu1.LoadMenu(IDR_MENU1);.. أي

أن Menu1 يحمل القائمة IDR_MENU1 .. وهكذا عملنا مع القائمة الثانية..

والان كيف نحدد أي قائمة تشتغل: الامر : SetMenu(&Menu1 .. جعل القائمة 1 تعمل والامر SetMenu(&Menu2); جعل القائمة 2 تعمل.. ولأن صندوق الحوار لا يتحمل أكثر من قائمة واحدة فإن تشغيل إحدا القائمتين يلغي الاخرى..

ماذا عن الشرط if X%2 ??? متى يكون حاصل القسمة على 2 صفر؟؟ عندما يكون العدد زوجي.. إذا انا اقول اذا كان العدد زوجي شغل القائمة الاولى وحوّل العدد الى فردي(اضف 1 الى قيمته) واذا كان العدد فردي شغل القائمة 2 واجعل العدد زوجي (أضف 1 الى قيمته).

#6

بسم الله الرحمن الرحيم

شكراً لك أخى و الله يجزيك الخير ... ( و الله المفروض أن أرد عليك من بدرى )

لكن مشاغل ا لحياه ..

وبالله التوفيق..

رجب النتشة

Rajab Natshah

#7

بسم الله الرحمن الرحيم

أخى إسماعيل لقد جربت الطريقه ولقت نجحت وأرفق هنا تجربتى لطريقتك..

و الله يجزيك الخير ...

testmenuo.zip

رجب النتشة

Rajab Natshah

#8

هذا من دواعي سروري (f)

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

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