用SetMenuInfo 为菜单添加更多特性
来源:互联网 发布:电子相册制作软件免费 编辑:程序博客网 时间:2024/05/22 03:10
用SetMenuInfo 为菜单添加更多特性
FAQ1:如何改变菜单的背景颜色
FAQ2:当鼠标离开菜单时,如何让菜单自动关闭
FAQ3:如何让菜单支持拖拽
FAQ4:如何设置菜单的最大高度(一但菜单超过这个高度时将自动出现滚动栏)
相关的消息:
WM_MENUDRAG
当用户拖拽菜单项时,菜单的属主窗口收到该消息。
参数:
wParam :指定被拖拽的菜单项位置
lParam : 包含该项的菜单句柄
返回值:
MND_CONTINUE 菜单仍然激活。如果鼠标被释放,它将被忽略
MND_ENDMENU 菜单结束
说明:
应用程序在响应该消息时可以调用DoDragDrop函数。
为了创建一个支持拖拽的菜单,要用MNS_DRAGDROP风格调用SetMenuInfo
关于SetMenuInfo函数的使用:
BOOL SetMenuInfo( HMENU hmenu , LPCMENUINFO lpcmi )
MENUINFO结构定义如下:
typedef struct tagMENUINFO {
DWORD cbSize;
DWORD fMask;
DWORD dwStyle;
UINT cyMax;
HBRUSH hbrBack;
DWORD dwContextHelpID;
ULONG_PTR dwMenuData;
} MENUINFO, FAR *LPMENUINFO;
typedef MENUINFO CONST FAR *LPCMENUINFO;
fMask 可以是以下值的组合:
MIM_APPLYTOSUBMENUS :仅SetMenuInfo用到这个标志,表示设置将对菜单的所有子菜单有效,GetMenuInfo忽略该标志;
MIM_BACKGROUND :允许获取/设置 hbrBack成员;
MIM_HELPID : 允许获取/设置dwContextHelpID成员;
MIM_MAXHEIGHT :允许获取/设置cyMax成员;
MIM_MENUDATA : 允许获取/设置dwMenuData成员;
MIM_STYLE : 允许获取/设置dwStyle成员;
dwStyle
菜单的风格,可以是以下值的组合:
MNS_AUTODISMISS :当鼠标在菜单外停留大约10秒钟后菜单自动结束
MNS_CHECKORBMP 在相同的位置留给CHECK标记和位图。如果绘制了CHECK标记,就不绘制位图。
MNS_DRAGDROP :菜单项可以是OLE DROP目标或DRAG源。菜单属主会收到WM_MENUDRAG和WM_MENUGETOBJECT消息。
MNS_MODELESS :菜单是非模式的
MNS_NOCHECK :不显示CHECK标记
MNS_NOTIFYBYPOS : 当产生一条菜单命令时,属主窗口不再收到WM_COMMAND而是收到WM_MENUCOMMAND
cyMax
菜单的最大高度,当菜单的高度超过这个值时将会在上下自动出现滚动栏。默认值(0)是整个屏幕的高度。
hbrBack
菜单的背景画刷
dwContectHelpID
上下文帮助ID,可以使用GetMenuContextHelpId和SetMenuContextHelpId获取/设置此值。
dwMenuData
应用程序自定义的值
- 用SetMenuInfo 为菜单添加更多特性
- 为窗体添加菜单
- 为菜单添加图标
- 美化ubuntu:为ubuntu添加更多字体
- 为 Bootstrap 添加更多自定义图标
- 为bootstrap添加更多自定义图标
- 如何为对话框添加菜单
- 为自定义对话框添加菜单
- 为android应用添加菜单
- 为lazyTreeGrid添加右键菜单
- 为unity添加自定义菜单
- 为android应用添加菜单
- 为QTreeView添加右键菜单
- 为windows添加右键菜单
- 为fedora添加更多的屏幕保护-用xscreensaver代替gnomescreensaver的方法
- 用Delphi为窗体的系统菜单中添加选项
- CSS为图片添加更多趣味的5种方法
- UltraPullToRefreshWithLoadMore (为UltraPullToRefresh添加上拉加载更多功能)
- Spring 系列:进入 Spring MVC
- Spring 系列:当 Hibernate 遇上 Spring
- eclipse开发资料合集
- 推荐一些星际网址
- GLUT - The OpenGL Utility Toolkit
- 用SetMenuInfo 为菜单添加更多特性
- 喝酒归来
- clock
- 使用别人的软件测试我的AT信令模拟器
- gis
- 编程语言流行排行榜
- 培训及培训中想到的需求
- 开始看接口驱动方面的资料
- 2003下从网页中把数据导出到excel时,碰到"Automation 服务器不能创建对象"的问题