投稿日 | : 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