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