VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/01/28(Fri) 10:47
投稿者ポン助
Eメール
URL
タイトルRe^6: SetMenuItemInfoについて

> どうも標準でモードレスになっているのではないでしょうか。

ダメでしたか。
当方では、Win98+VB6でしか試していませんが、フォーカスも移動せず、
ProgressBarも停止しませんでした。
当然ながら、メニューのEnabledプロパティはFalseにしています。
環境に依存するんでしょうかね?

で、メニュースタイルが、モーダルかモードレスかを取得する
GetMenuInfoを追加してみました。
ボタンのクリックでモーダル/モードレスが交互に切り替わると思います。

Private Declare Function GetMenuInfo Lib "user32" _
        (ByVal hMenu As Long, lpcmi As MENUINFO) As Long

Private Sub Command1_Click()
    Dim mi As MENUINFO
    Dim hMenu As Long
    Dim dwRetval As Long
  
    hMenu = GetMenu(Me.hwnd)
    With mi
        .cbSize = Len(mi)
        .fMask = MIM_STYLE
        dwRetval = GetMenuInfo(hMenu, mi)
        If dwRetval = 0 Then Debug.Print "GetMenuInfo() fails"
        If (.dwStyle And MNS_MODELESS) = MNS_MODELESS Then
            .dwStyle = .dwStyle Xor MNS_MODELESS
            Command1.Caption = "Modal"
        Else
            .dwStyle = .dwStyle Or MNS_MODELESS
            Command1.Caption = "Modeless"
        End If
    End With
    dwRetval = SetMenuInfo(hMenu, mi)
    If dwRetval = 0 Then Debug.Print "SetMenuInfo() fails"
End Sub


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

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -