tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル MDIフォームの最大化・最小化ボタンを無効にする方法
投稿日: 2016/12/04(Sun) 19:29
投稿者スマートPIG
VB6でプログラム作成を始め15年近くなります。
今回、MDIフォームの最大化・最小化ボタンを無効化する目的で、以下のコードを貼り付け、実行しましたが、「閉じる(×)」ボタンは無効化されたものの、最大化・最小化ボタンは無効化されませんでした。解決法をご教授いただければ幸いです。よろしくお願いいたします。
なお、現在利用中のOSはウィンドウズ10です。

Option Explicit
    'MDIフォームのクリップボタンを無効化する
    Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As         Long 'システムメニューのハンドルを取得
    Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long 'メニューから項目を削除する
    Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long 'メニューバーを再描画する
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long 'ウインドウに関する属性を変更する
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal     nIndex As Long) As Long 'ウインドウに関するデータを取得する
    Private Const WS_MINIMIZEBOX = &H20000 '最小化ボタン
    Private Const WS_MAXIMIZEBOX = &H10000 '最大化ボタン
    Private Const GWL_STYLE = (-16)
    Private Const MF_BYCOMMAND = &H0& 'メニュー項目のID
    Private Const MF_BYPOSITION = &H400& 'メニュー項目のインデックス
    Private Const SC_CLOSE = &HF060 'システムメニューを閉じる
    Private Const SC_MOVE = &HF010 'システムメニューの移動
    Private Const SC_SIZE = &HF000 'システムメニューのサイズ変更
    Private Const SC_MAXIMIZE = &HF030 'システムメニューの最大化
    Private Const SC_MINIMIZE = &HF020 'システムメニューの最小化
    Private Const SC_RESTORE = &HF120 'システムメニューを元に戻す

Private Sub MDIForm_Load()
    Dim Result As Long
    Dim hWnd As Long
    Dim NewLong As Long
    '
    NewLong = GetWindowLong(Me.hWnd, GWL_STYLE)
    NewLong = NewLong And Not (WS_MINIMIZEBOX)
    NewLong = NewLong And Not (WS_MAXIMIZEBOX)
    NewLong = SetWindowLong(Me.hWnd, GWL_STYLE, NewLong)
    DrawMenuBar (Me.hWnd) 'メニューバーを再描画する  
    '
    hWnd = GetSystemMenu(Me.hWnd, 0&)
    Result = DeleteMenu(hWnd, SC_CLOSE, MF_BYCOMMAND) '「閉じる」ボタンを無効化する
    Result = DeleteMenu(hWnd, 5&, MF_BYPOSITION)
End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。