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

مقاسات النافذة

مغلق
بدأه عنق الزجاجة في 12 أغسطس 2001 · 5 رد · 471 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

تحية طيبة

أود من الإخوة الكرام التكرم بشرح التعرف على خصائص الفورم وإظهار النتائج ، وهذه الخصائص هي :

- طول وعرض الفورم الخارجي .

- طول وعرض مساحة العمل داخل الفورم ( المحاط بالأزرق ) .

- دالة الخط وكيفية نقل إحداثياته من نقطة الى نقطة .

- دالة رسم نقطة بالألوان مع تحديد الموقع .

- دالة رسم الدائرة بالألوان .

علماً أن الفورم من نوع Dialog والفورم جاهز للعمل .

أرجو الشرح بالتفصيل ما أمكن ، مع الشكر الجزيل مقدماً :):):)

تحياتي

#2

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

بالنسبة لطول و عرض الفورم مع الاطار الخارجي يمكن الحصول عليه عن طريق الدالة GetWindowRect()

و بالنسبة لطول وعرض مساحة العمل داخل الفورم فيمكن الحصول عليها عن طريق الدالة GetClientRect()

و بالنسبة لدوال الخط(المستقيم) و النقطة و الدائرة فيمكن الحصول عليها من ال Class الموجود ضمن MFC و المسمى CPaintDC وهو ال Class المستخدم من أجل عملية الرسم على ال Dialog باستخدام التابع OnPaint() الذي يجب أن تعمل له Override

مع التحيات.

#3

line.gif

الله يعطيك العافية أخوي عادل .

نفذت اللي قلت عليه ، ورسمت الخط عشان ينصف النموذج بس شوفة عينك ، أنا ودي الخط يكون من الزاوية العلوية اليسرى الى الزاوية السفلى اليمنى :( ، وهذا اللي صار ، ممكن أعرف إيش المطلوب عشان يصير الخط من بداية الفورم الى نهايته :( ، مع الشكر الجزيل .

وتقبلوا تحياتي :)

#4

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

أخي "عنق الزجاجة" لرسم مستقيم من الزاوية العليا اليسرى إلى الزاوية اليمنى السفلى اكتب التعليمات التالية :

CRect rect;
GetClientRect(&rect);
dc.MoveTo(0,0);
dc.LineTo(rect.Width(),rect.Height());

و إن شاء الله يمشي الحال:)

مع التحيات.

#5

مشكور أخوي عادل :)

الخطأ الأول لإني استعملت GetWindowRec ، أسألك الآن ما الفرق بينهما ، مع الشكر الجزيل :)

#6

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

أخي النافذة تتألف من منطقتين و هما: Client Area و Non Client Area .

منطقة Non Client Area هي المنطقة التي تحتوي على شريط العنوان Titlebar و القوائم Menus و أشرطة الادوات Toolbars و أشرطة الحالة Statusbars .

و المنطقة الباقية من نافذة برنامجك هي Client Area .

الآن للحصول على أبعاد Client Area استخدم التابع GetClientRect و للحصول على أبعاد المنطقتين مع بعضهما البعض استخدم التابع GetWindowRect .

نقطة أخرى يجب ذكرها هنا وهي :

الاحداثيات التي يرجعها التابع GetClientRect هي احداثيات بالنسبة لنقطة المركز في برنامجك و هي الزاوية العليا اليسرى ل ClientArea بينما الاحداثيات التي يرجعها التابع GetWindowRect فهي احداثيات بالنسبة لنقطة المركز في الشاشة و هي الزاوية العليا اليسرى من الشاشة.

مع التحيات.

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

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