คุณไม่สามารถจินตนาการได้ว่าการแก้ปัญหานี้ง่ายเพียงใด คุณสามารถสร้างแบบฟอร์มของรูปร่างใดก็ได้ แต่คุณต้องใช้ API สองตัว CreateEllipticRgn และ SetWindowRgn เช่น:
ส่วนตัวประกาศฟังก์ชันสร้าง EllipticRgnLib "gdi32" (ByValX1AsLong, ByValY1AsLong, ByValX2AsLong, ByValY2AsLong) AsLong
PrivateDeclareFunctionSetWindowRgnLib "ผู้ใช้ 32" (ByValhWndAsLong, ByValhRgnAsLong, ByValbRedrawAsBoolean) AsLong
ส่วนตัวSubForm_Load()
DimlReturnAsLong
ฉัน.แสดง
lReturn=SetWindowRgn(hWnd,CreateEllipticRgn(10,10,340,150),จริง)
สิ้นสุดย่อย
ภาพผลการดำเนินการ
พารามิเตอร์ทั้งสี่ของ CreateEllipticRgn ได้รับการอธิบายดังนี้:
X1: ตำแหน่งแกน X ของจุดศูนย์กลางของวงรี แต่จำกัดอยู่ที่ขอบเขตที่แท้จริงของแบบฟอร์ม
Y1: ตำแหน่งแกน Y ของจุดศูนย์กลางของวงรี แต่จำกัดอยู่ที่ขอบเขตที่แท้จริงของแบบฟอร์ม
X2: ความยาวของด้านยาวของวงรี
Y2: ความยาวของด้านสั้นของวงรี ->