SetWindowRgn()後の破棄とか
SetWindowRgn()後の破棄とか
Public Sub DestroyHRgn(objForm As Form) Dim lngRet As Long Dim lngTmpRgn As Long 'ダミーリージョン作成 lngTmpRgn = CreateRectRgn(0&, 0&, 0&, 0&) If lngTmpRgn = 0& Then MsgBox "ダミーリージョンの作成に失敗しました" & vbCrLf & _ GetErrorMsg(), vbCritical Or vbOKOnly Else '引数で指定されたウィンドウのリージョンを取得 lngRet = GetWindowRgn(objForm.hWnd, lngTmpRgn) If lngRet <> ERROR Then 'リージョン破棄 lngRet = DeleteObject(lngTmpRgn) If lngRet = 0& Then MsgBox "リージョンの破棄に失敗しました" & vbCrLf & _ GetErrorMsg(), vbCritical Or vbOKOnly Else '正常終了 Exit Sub End If Else MsgBox objForm.Name & "のリージョン取得に失敗しました" & vbCrLf & _ GetErrorMsg(), vbCritical Or vbOKOnly End If '正常に破棄できなかったので戻り値を見ずにダミーリージョンを破棄 Call DeleteObject(lngTmpRgn) End If End Sub