杭州滨江区哪里好玩:关于vb6.0 的菜单问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 12:42:41
我用VB的API函数写了一个生成菜单的函数,每个窗体都可以调用,但我发现如果窗体弹出msgbox后菜单就会消失,好像不是程序失去了作用而是没有把菜单显示出来,不知道是怎么回事,请高手帮我看看代码:
Option Explicit
Private Const MF_POPUP = &H10&
Private Const MF_STRING = &H0&
Private Const MF_SEPARATOR = &H800&
Private Const MF_BYPOSITION = &H400&
Private Declare Function CreateMenu Lib "user32" () As Long
Private Declare Function CreatePopupMenu Lib "user32" () As Long
Private Declare Function InsertMenu Lib "user32" Alias "InsertMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
Private Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As Any) As Long
Private Declare Function SetMenu Lib "user32" (ByVal hwnd As Long, ByVal hMenu As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long

Private Sub Command1_Click()
MsgBox "aaa"
End Sub

Private Sub Form_Load()
Dim hMenu As Long
Dim hFileSubMenu As Long
Dim hHelpSubMenu As Long
Me.Show
hMenu = CreateMenu()
hFileSubMenu = CreatePopupMenu()
hHelpSubMenu = CreatePopupMenu()

InsertMenu hMenu, 0, MF_BYPOSITION, 0, "&File"
InsertMenu hMenu, 1, MF_BYPOSITION, 1, "&Edit"
InsertMenu hMenu, 2, MF_BYPOSITION, 2, "&View"
InsertMenu hMenu, 3, MF_BYPOSITION, 3, "&Help"

ModifyMenu hMenu, 0, MF_POPUP, hFileSubMenu, "&File"
hFileSubMenu = GetSubMenu(hMenu, 0)
InsertMenu hFileSubMenu, 0, MF_BYPOSITION, 1001, "&New"
InsertMenu hFileSubMenu, 1, MF_BYPOSITION Or MF_SEPARATOR, 1002, ""
InsertMenu hFileSubMenu, 2, MF_BYPOSITION, 1003, "&Exit"

ModifyMenu hMenu, 3, MF_POPUP, hHelpSubMenu, "&Help"
hHelpSubMenu = GetSubMenu(hMenu, 3)
InsertMenu hHelpSubMenu, 0, MF_BYPOSITION, 4001, "&About..."
InsertMenu hHelpSubMenu, 1, MF_BYPOSITION Or MF_SEPARATOR, 4002, ""
InsertMenu hHelpSubMenu, 2, MF_BYPOSITION, 4003, "&Help"

SetMenu Me.hwnd, hMenu
DrawMenuBar Me.hwnd
End Sub
谢谢leady20! 这个方法好像也不行。真是急死我了 :(

你试试将窗体的AutoReDrew设为TRUE试试~
我有条件时帮你试试