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

タイトル VB6.0からExcel2010メニューバー制御
投稿日: 2011/12/17(Sat) 11:28
投稿者ほっけ
今までVB6.0からExcel2003の制御を行っていましたがこの度Excel2010を使用することになりExcel2010にあわせた開発をすることなりました。

今まではExcel(Excel2003)のシステムメニューバー(最大・最小化・閉じる等)をDeleteMenuを下記のように使用して使用不可制御をしていましたが、Excel2010のシステムメニューバーの制御が閉じるの制御は今まで通りできるのですが最大・最小化の制御ができなくなり、書籍などにも制御方法が載っておらず困っています。

最大・最小化は制御できない仕様なのでしょうか。
もし制御方法をご存知の方がいましたらお教えいただけないでしょうか。

どうかよろしくお願い致します。

Public Declare Function DeleteMenu Lib "USER32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

Public Const SC_CLOSE = &HF060 '「閉じる」
Public Const SC_SIZE = &HF000'「サイズ変更」
Public Const SC_MAXIMIZE = &HF030 '「最大化」
Public Const SC_RESTORE = &HF120 '「元のサイズに戻す」
Public Const SC_MINIMIZE = &HF020 '「最小化」
Public Const SC_MOVE = &HF010'「移動」

'------------------------------------------
'■関数名 Delete
'■用途  システムメニューの項目を削除する
'■引数  nHandle:ウインドウのハンドル
'       Flag:削除する項目(SC_××参照)
'------------------------------------------

Public Sub Delete(nHandle As Long, Flag As String)

Dim hMen As Long
Dim Ret As Long

'システムメニューのハンドルを確保
hMen = GetSystemMenu(nHandle, 0)
'システムメニューの項目を削除する
Ret = DeleteMenu(hMen, Flag, MF_BYCOMMAND)
'描画(変更を反映)
Ret = DrawMenuBar(nHandle)

End Sub

'ここからはフォームの処理です
Private Sub Command1_Click
 Call Delete(hwnd, SC_SIZE)
End Sub

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

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