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

كيفية جعل ال Form تبدو حوافه(أركانه) مستديرة

بدأه simsimzone في 25 ديسمبر 2008 · 5 رد · 1,293 مشاهدة · في C++.Net
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ارجو من الأخوة ارشادي في كيفية جعل ال Form تبدو حوافه مستديرة أو بأي شكل غير المستطيل

#2

وطبعا بواسطة ال c++/cli

ارجو الاجابة اخوتي...

#3
موضوع مفيد هنا
tvquran_6.gif

#4

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

شكرا لك أخي, قد راجعت الوصلة وعملت مثال بذلك ولكن ليس هذا ما أطلبه, فذلك المثال يعطي ال Form فقط مظهر غير مستطيل بشفافية الألوان

وما أطلبه هو تغيير فعلي بحيث اذا ضغط المستخدم بالماوس بالقرب من الشكل يفقد ال Form تركيزه أو بمعنى آخر أن تتغير حواف ال Form من

Rectangle إلى شيء مثل Region فهل هناك شيء كهذا...

وشكراَ لكم...

#5

الحمد لله وما توفيقي إلا بالله, بعد بحث طويل, تفاجأت بأن ال Form لديه الخاصية this->Region وهي التي عن طريقها يتم رسم ال Form فقد تكون مستطيل وهي الحالة الإفتراضية أو أي من الأشكال المضافة في thePath وهو من نوع GraphicsPath والذي بدوره يتم وضعه كمعامل للConstruction Region

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

System::Drawing::Drawing2D::GraphicsPath^ thePath =
				 gcnew System::Drawing::Drawing2D::GraphicsPath;
Rectangle rect = this->ClientRectangle;
thePath->AddEllipse(rect);
this->Region = gcnew System::Drawing::Region(thePath);
#6

لمزيد من الفائدة أود أن أوضح لكم أنه يمكنك أن تنادي الدالة thePath->Add... عدة مرات بحيث تكون شكل جديد مثلا

 
Rectangle rect1 = Rectangle(0,0,200,200); 
Rectangle rect2 = Rectangle(0,0,20,20); 
Rectangle rect3 = Rectangle(180,20,20,20); 
Drawing2D::GraphicsPath^ path1 = gcnew Drawing2D::GraphicsPath; 
Drawing2D::GraphicsPath^ path2 = gcnew Drawing2D::GraphicsPath; 

path1->AddRectangle(rect1); 
path1->AddRectangle(rect2); 

//هنا قد أضفنا مستطيلين الى path1 
// وبما أن path1 عبارة عن شكل واحد فانها تدمج المستطيلين سوية 
// أما قاعدة الدمج فهي أن أي مساحات متقاطعة فانها تحذف من path1 
// كذلك يمكن أن يكون الدمج أن يكون الدمج شكل بكامل تعقيداته مع شكل اخر مثال على ذلك: 

path2->AddEllipse(rect3); 
path1->AddPath(path1, true); 

this->Region = gcnew System::Drawing::Region(path1);

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…