この問題を解決するのがどれほど簡単か想像もできないでしょう。任意の形状の Form を作成できますが、次のような 2 つの API CreateEllipticRgn と SetWindowRgn を使用する必要があります。
PRivateDeclareFunctionCreateEllipticRgnLib「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 の 4 つのパラメーターについては、次のように説明します。
X1: 楕円の中心点の X 軸位置ですが、フォームの実際の境界に限定されます。
Y1: 楕円の中心点の Y 軸位置ですが、フォームの実際の境界に限定されます。
X2: 楕円の長辺の長さ
Y2:楕円の短辺の長さ →