用于美化现有的菜单。注意是现有的,或者是窗体菜单,或者是弹出菜单什么的。
导出3个函数(标准Win API):
long AssignOwnerDraw(HANDLE hMenu)
long MeasureItem(LPMEASUREITEMSTRUCT lpmis)
long DrawItem(LPDRAWITEMSTRUCT lpdis)VB里声明:
Private Declare Function AssignOwnerDraw Lib "cutemenu" (ByVal hMenu As Long) As Long
Private Declare Function MeasureItem Lib "cutemenu" (ByVal lpmis As Long) As Long
Private Declare Function DrawItem Lib "cutemenu" (ByVal lpdis As Long) As Long用法:先调用 AssignOwnerDraw 为菜单设置用户自绘属性,hMenu 为要设置的菜单句柄。这个函数设置此菜单下所有条目和子菜单。
在 WM_MEASUREITEM 消息,调用 MeasureItem,lpmis 为 lParam
在 WM_DRAWITEM 消息,调用 DrawItem, lpdis 为 lParam菜单内容支持位图(需要用户自行设定)。目前的风格模仿 Firefox Aero 主题。 下载到我的资源里,链接:
http://download.csdn.net/source/811001VB代码片断(VB使用时需要先窗口子类化,以便处理菜单自绘消息)Call cMenu.AssignOwnerDraw(GetMenu(Me.hWnd))'...
Case WM_MEASUREITEM
        Call cMenu.MeasureItem(lParam)
Case WM_DRAWITEM
        If wParam = 0 Then Call cMenu.DrawItem(lParam)
'...