円形フォーム!!


'===========================================================================
'    ファイル名    : frmRouncForm.frm
'    ファイル説明  : 円形フォーム
'    作成者        : Uz
'                    E-Mail   : uz@violet.plala.or.jp
'                    HomePage : http://www1.plala.or.jp/uz/
'    作成日        : 1998/03/01 (Sun)
'    修正日        : 1998/03/01 (Sun)
'    備考          : なし
'===========================================================================
Option Explicit

' -- API 関数宣言
Private Declare Function SetWindowRgn Lib "user32" ( _
    ByVal hWnd As Long, _
    ByVal hRgn As Long, _
    ByVal bRedraw As Long _
) As Long
Private Declare Function CreateRoundRectRgn Lib "gdi32" ( _
    ByVal X1 As Long, _
    ByVal Y1 As Long, _
    ByVal X2 As Long, _
    ByVal Y2 As Long, _
    ByVal X3 As Long, _
    ByVal Y3 As Long _
) As Long
Private Declare Function DeleteObject Lib "gdi32" ( _
    hObject As Long _
) As Long

' -- 変数宣言
Private lngRgnHandle As Long

'///////////////////////////////////////////////////////////////////////////
'      関数名    : Form_DblClick
'      目的説明  : ダブルクリックイベント
'      備考      : 終了用
'///////////////////////////////////////////////////////////////////////////
Private Sub Form_DblClick()
    Call Unload(Me)
End Sub

'///////////////////////////////////////////////////////////////////////////
'      関数名    : Form_Load
'      目的説明  : 読み込みイベント
'///////////////////////////////////////////////////////////////////////////
Private Sub Form_Load()
    '円形リージョン作成
    lngRgnHandle = CreateRoundRectRgn( _
        0, _
        0, _
        Me.Width / Screen.TwipsPerPixelX, _
        Me.Height / Screen.TwipsPerPixelY, _
        Me.Width / Screen.TwipsPerPixelX, _
        Me.Height / Screen.TwipsPerPixelY _
    )
    'ウインドウのリージョンを円形のリージョンに変更
    Call SetWindowRgn(Me.hWnd, lngRgnHandle, True)
End Sub

'///////////////////////////////////////////////////////////////////////////
'      関数名    : Form_Unload
'      目的説明  : 終了イベント
'///////////////////////////////////////////////////////////////////////////
Private Sub Form_Unload(Cancel As Integer)
    'リージョンの解放
    Call DeleteObject(lngRgnHandle)
End Sub