لا يمكنك أن تتخيل مدى سهولة حل هذه المشكلة، يمكنك إنشاء نموذج بأي شكل، ولكن يجب عليك استخدام الواجهتين APIs CreateEllipticRgn وSetWindowRgn، على سبيل المثال:
خاصإعلان وظيفةإنشاء EllipticRgnLib"gdi32"(ByValX1AsLong،ByValY1AsLong،ByValX2AsLong،ByValY2AsLong)AsLong
PrivateDeclareFunctionSetWindowRgnLib"user32"(ByValhWndAsLong,ByValhRgnAsLong,ByValbRedrawAsBoolean)AsLong
PrivateSubForm_Load()
DimlReturnAsLong
أنا.عرض
lReturn=SetWindowRgn(hWnd,CreateEllipticRgn(10,10,340,150),True)
EndSub
صورة نتيجة التنفيذ
يتم شرح المعلمات الأربعة لـ CreateEllipticRgn على النحو التالي:
X1: موضع المحور السيني للنقطة المركزية للقطع الناقص، ولكنه يقتصر على الحدود الحقيقية للنموذج.
Y1: موضع المحور Y للنقطة المركزية للقطع الناقص، ولكنه يقتصر على الحدود الحقيقية للنموذج.
X2: طول الضلع الطويل للقطع الناقص
Y2: طول الضلع القصير للقطع الناقص ->