用一下方法实现一个控件菜单,不知如果修改菜单的底色,请各位老师帮帮忙啊。Public Declare Function createMenu Lib "user32" Alias "CreateMenu" () As Long
Public Declare Function SetMenu Lib "user32" (ByVal hwnd As Long, ByVal hmenu As Long) As Long
Public Declare Function InsertMenuItem Lib "user32" Alias "InsertMenuItemA" (ByVal hmenu As Long, ByVal un As Long, ByVal BOOL As Boolean, ByRef lpcMenuItemInfo As MENUITEMINFO) As Long
Public Declare Function GetMenu Lib "user32" (ByVal hmenu As Long) As Long
'Public Declare Function GetSubMenu Lib "user32" (ByVal hmenu As Long, ByVal un As Integer) As Long
Public Declare Function GetMenuItemID Lib "user32" (ByVal hmenu As Long, ByVal un As Integer) As Long
Public Declare Function GetMenuItemCount Lib "user32" (ByVal hmenu As Long) As Long
Public Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hsubmenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
Public Declare Function SetMenu Lib "user32" (ByVal hwnd As Long, ByVal hmenu As Long) As Long
Public Declare Function InsertMenuItem Lib "user32" Alias "InsertMenuItemA" (ByVal hmenu As Long, ByVal un As Long, ByVal BOOL As Boolean, ByRef lpcMenuItemInfo As MENUITEMINFO) As Long
Public Declare Function GetMenu Lib "user32" (ByVal hmenu As Long) As Long
'Public Declare Function GetSubMenu Lib "user32" (ByVal hmenu As Long, ByVal un As Integer) As Long
Public Declare Function GetMenuItemID Lib "user32" (ByVal hmenu As Long, ByVal un As Integer) As Long
Public Declare Function GetMenuItemCount Lib "user32" (ByVal hmenu As Long) As Long
Public Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hsubmenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
解决方案 »
- vb inet 提交表单登录
- RichTextBox中怎么设置选中字体!
- 做《酒店进销存》需要注意的地方、建议、思路
- 我想知道比如DM_REPOSITION之类的消息标识符的数值是多少?在哪里查询得到啊?
- 请问如何将设计好的报表格式输出到Excel表中???
- 太着急了!!!在机器1运行用Vb做的数据库备份程序,要备份机器2的数据库(局域网内),如何在备份时选择机器2的路径.(象SQL备份数据库那样)
- 如何在VB6。0中控制注册表?
- 初学VB,两个弱智问题请教,送分
- 请指教如果设置服务器端COM组件的权限,使终端可以访问到?分数好说啦,急,高手快帮忙!
- WIN2000中如何使用Openprocess函数?
- 请问什么是C/S模式和B/S模式啊?
- 键盘全局HOOK的问题!!!
VB的菜单编辑也是靠调用API实现菜单创建的
菜单本身没有背景颜色等属性
但Windows提供了Owner Draw功能让 所有者(编程序的人) 去绘制菜单处理WM_MEASUREITEM消息设置菜单项的大小
处理WM_DRAWITEM消息绘制菜单可参考:
http://vbaccelerator.com/home/vb/code/controls/menus/popup_menu_activex_dll/article.asp