بسم الله الرحمن الرحيم
لقد كشفت بفضل الله طريقة تجعل الفورم في فيجوال سي++ دائرياً ويمكنك تغيير لونه ووضع الأزرار والأودوات على الفورم كالفورم العادي ولكن شكل الفورم لايظهر الا وقت التنفيذ .
اليك الطريقة:
1_ قم بإنشاء برنامج تنفيذي واختر نوع التطبيق BaseDialog ثم قم بالضغط على زر Finish واترك باقي خطوات المعالج كما هي .
يظهر امامك الفورم العادي لفيجوال سي++ قم بالضغط عليه بالزر الأيمن للفأرة واختر Class Wizerd ثم قم باختيار التبويب MessageMap من قائمة Message اختر الحدث WM_INITDIALOG ثم انقر زر Edit Code
ثم اكتب الكود التالي في أول الدالة بعد قوس الفتح مباشرة:
CDC* pDC = GetDC(); CRect rect; GetClientRect(&rect); CRgn Rgn; Rgn.CreateEllipticRgnIndirect (&rect); SetWindowRgn(Rgn,TRUE);
شغل ونفذ التطبيق سترى ان شكر الفورم اصبح دائرياً فعلاً واذا أردت تغيير لون الفورم فهنالك كود بسيط جداً ايضاً وهو كالتالي:
اغلق الفورم بالضغط على زر Esc في لوحة المفاتيح.
اضغط بالزر الأيمن للفأرة على الفورم واختر Class Wizerd ثم قم باختيار التبويب MessgeMap ثم اختر من قائمة Message اختر الحدث
WM_PAINT ثم اكتب في بداية الدالة بعد قوس الفتح مباشرة الكود التالي وذلك لتغيير لون النافذة وهاهو الكود:
CDC* pDC = GetDC(); CRect rect; GetClientRect(&rect); CBrush br(RGB(255,77,0)); pDC->FillRect (&rect,&br);
شغل البرنامج سترى ان لون النافذة اصبح برتقالياً وهذه هي الطريقة سهلة أليس كذالك؟
ويمكنك وضع اللون الذي يناسبك للنافذة وهو عن طريق تغيير
RGB(255,77,0); تحدد اللون للنافذة غير في الأرقام فقط
فمثلاً لو وضعت :
RGB(0,0,255) يصبح اللون ازرق( لون النافذة)
اخواني هذا مالدي فإن اخطأت فمن نفسي والشيطان وان اصبت فمن الله سبحانه وتعالى
ملاحظة :
اذا لم يتم تنفيذ الكود غير نمط البناء من Debug إلى Release
اخواني أنا في إنتظار الرد منكم على هذه الطريقة وشكراً لكم
اخوكم Eidx00