やり方はいろいろあるね。
'システムメニューのハンドルを取得する
'メニューを削除する
'メニューを描画する
Private Const MF_BYCOMMAND = &H0&
'--------------------------------------------------------------------------- ' 関数名: DisableXButton ' 機能 : 右上の[X]を無効にする ' 引数 :(in) hWnd … ウインドウのハンドル ' 戻り値: 正常:0以外、 エラー:0 '--------------------------------------------------------------------------- Public Function DisableXButton(ByVal hWnd As Long) As Long Dim hSystemMenu As Long hSystemMenu = GetSystemMenu(hWnd, False) '↓これでもよい、多分 'Call DeleteMenu(hSystemMenu, 6, MF_BYPOSITION) 'Call DeleteMenu(hSystemMenu, 5, MF_BYPOSITION) Call DeleteMenu(hSystemMenu, SC_CLOSE, MF_BYCOMMAND) DisableXButton = DrawMenuBar(hWnd) End Function
'ウインドウクラスを取得する
'ウインドウクラスを変更する
Private Const GCL_STYLE = (-26)
'--------------------------------------------------------------------------- ' 関数名: DisableXButton ' 機能 : 右上の[X]を無効にする ' 引数 :(in) hWnd … ウインドウのハンドル ' 返り値: 設定したウィンドウスタイル値 エラー時は0が返る '--------------------------------------------------------------------------- Public Function DisableXButton(ByVal hWnd As Long) As Long Dim Style As Long Style = GetClassLong(hWnd, GCL_STYLE) If Style = 0 Then Exit Function Style = Style Or CS_NOCLOSE DisableXButton = SetClassLong(hWnd, GCL_STYLE, Style) End Function |