负责开发一个工程的一个小模块
其中用到右键菜单,在本机上运行完全正常,加入到整个工程的时候,右键菜单就出不来了,只能在左上角点出主菜单。
试着在调用右键菜单的地方加了一个MsgBox没有任何问题MsgBox可以弹出
说明不是右键问题
但是单独执行程序(不作为一部分加载进总工程时)右键菜单就一切正常。
请各位指教,有人说要用子类处理。
可是我是菜鸟新学,用的时候老是出错,编译总也解决不了。
请各位高手指点。
其中用到右键菜单,在本机上运行完全正常,加入到整个工程的时候,右键菜单就出不来了,只能在左上角点出主菜单。
试着在调用右键菜单的地方加了一个MsgBox没有任何问题MsgBox可以弹出
说明不是右键问题
但是单独执行程序(不作为一部分加载进总工程时)右键菜单就一切正常。
请各位指教,有人说要用子类处理。
可是我是菜鸟新学,用的时候老是出错,编译总也解决不了。
请各位高手指点。
有没有其他什么方法呀?
首先建立一个窗体,加上菜单和Message Blaster控件。然后输入以下代码:
Option Explicit
Const WM_COMMAND = &H111
Const MF_BYPOSITION = &H400&
Const MF_STRING = &H0&
Const MF_POPUP = &H10&
Private Declare Function GetMenu 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 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 CreatePopupMenu Lib "user32" () As Long
Private Declare Function DestroyMenu Lib "user32" (ByVal hMenu As Long) As Long
Dim hPopMenu As Integer, hFileMenu As Integer
Private Sub Form_Load()
Msgblst321.hWndTarget = hwnd
Msgblst321.MsgList(0) = WM_COMMAND
hFileMenu = GetSubMenu(GetMenu(hwnd), 0)
hPopMenu = CreatePopupMenu()
InsertMenu hPopMenu, -1, MF_BYPOSITION + MF_STRING, 500, "File"
InsertMenu hFileMenu, -1, MF_BYPOSITION + MF_STRING + MF_POPUP, hPopMenu, "Hello"
End Sub
运行这个例子,你的第一个菜单中将增加一个“Hello”项,而它带有“File”的子菜单。
Private Sub Form_Unload(Cancel As Integer)
DestroyMenu hPopMenu
End Sub
Private Sub Msgblst321_Message(ByVal MsgVal As Long, ByVal wParam As Long, ByVal lParam As Long, lplRetVal As Long)
If wParam = 500 Then
MsgBox "You choose a popup menu!"
End If
End Sub
我用MSDN也查不到
http://www.china-askpro.com/download/mbocx32b.zip