ارجو من الأخوة ارشادي في كيفية جعل ال Form تبدو حوافه مستديرة أو بأي شكل غير المستطيل
كيفية جعل ال Form تبدو حوافه(أركانه) مستديرة
وطبعا بواسطة ال c++/cli
ارجو الاجابة اخوتي...
بســم الله الـرحمــن الرحيــم
شكرا لك أخي, قد راجعت الوصلة وعملت مثال بذلك ولكن ليس هذا ما أطلبه, فذلك المثال يعطي ال Form فقط مظهر غير مستطيل بشفافية الألوان
وما أطلبه هو تغيير فعلي بحيث اذا ضغط المستخدم بالماوس بالقرب من الشكل يفقد ال Form تركيزه أو بمعنى آخر أن تتغير حواف ال Form من
Rectangle إلى شيء مثل Region فهل هناك شيء كهذا...
وشكراَ لكم...
الحمد لله وما توفيقي إلا بالله, بعد بحث طويل, تفاجأت بأن ال 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);
لمزيد من الفائدة أود أن أوضح لكم أنه يمكنك أن تنادي الدالة 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);
