菜单类

CMenu 菜单类

成员函数
1. CreateMenu()和CreatePopupMenu(),这两个函数用来创建一个菜单实例,CreateMenu()创建的是普通的菜单实例,如果想创建弹出式菜单,就要用CreatePopupMenu()函数。

2. AppendMenu()向菜单中添加一个子项,这个函数有两个主要的参数。第一个UINT nFlags,这个参数表明了该子项的属性特征,可以这样说,这个参数规定了菜单的样式和功能。后面会详细讲这个参数所能使用的值。第二个参数UINT_PTR nIDNewItem,根据nFlags使用不同的设置,该参数将标明菜单的资源ID或在这个菜单中的索引号。第三个参数可以省略,如果不省略,可以传入一个字符串,这个字符串将显示在菜单中(因为我准备用突破表示菜单项,所以我的工程中省略了这个参数)。

3. DrawItem(),这是一个虚函数,如果菜单设置成可以自绘类型,则这个函数将在生成菜单、弹出菜单、选中菜单、点击菜单等时由系统框架调用。因此,这个函数是一个很有用的函数,它可以帮你绘制出各种样式的菜单。

4. MeasureItem()也是一个虚函数,当菜单被创建的时候由系统框架调用。这个函数用来设置菜单的大小。





数据成员
m_hMenu
指定附加给CMenu对象的窗口菜单的句柄
构造函数
CMenu
构造一个CMenu对象
初始化
Attach
附加一个Windows菜单句柄给CMenu对象
Detach
从CMenu对象中分离Windows菜单的句柄,并返回该句柄
FromHandle
返回一个指向给定Windows菜单句柄的CMenu对象的指针
GetSafeHmenu
返回由CMenu对象包含的m_hMenu值
DeleteTempMap
删除由FromHandle成员函数创建的所有临时CMenu对象
CreateMenu
创建一个空菜单,并将其附加给CMenu对象
CreatePopupMenu
创建一个空的弹出菜单,并将其附加给CMenu对象
LoadMenu
从可执行文件中装载菜单资源,并将其附加给CMenu对象LoadMenuIndirect从内存的菜单模板中装载菜单,并将其附加给CMenu对象
DestroyMenu
销毁附加给CMenu对象的菜单,并释放菜单占用的内存
菜单操作
DeleteMenu
从菜单中删除指定的项。如果菜单项与弹出菜单相关联,那么将销毁弹出菜单的句柄,并释放它占用的内存
TrackPopupMenu
在指定的位置显示浮动菜单,并跟踪弹出菜单的选择项
菜单项操作
AppendMenu
在该菜单末尾添加新的菜单项
CheckMenuItem
在弹出菜单的菜单项中放置或删除检测标记
CheckMenuRadioItem
将单选钮放置在菜单项之前,或从组中所有的其它菜单项中删除单选钮
SetDefaultItem
为指定的菜单设置缺省的菜单项GetDefaultItem获取指定的菜单缺省的菜单项
EnableMenuItem
使菜单项有效、无效或变灰GetMenuItemCount决定弹出菜单或顶层菜单的项数
GetMenuItemID
获取位于指定位置菜单项的菜单项标识
GetMenuState
返回指定菜单项的状态或弹出菜单的项数
GetMenuString
获取指定菜单项的标签GetMenuItemInfo获取有关菜单项的信息
GetSubMenu
获取指向弹出菜单的指针
InsertMenu
在指定位置插入新菜单项,并顺次下移其它菜单项
ModifyMenu
改变指定位置的已存在的菜单项
RemoveMenu
从指定的菜单中删除与弹出菜单相关联的菜单项
SetMenuItemBitmaps
将指定检测标记的位图与菜单项关联
GetMenuCountextHelpID
获取与菜单关联的帮助文本的ID号
SetMenuCountextHelpID
设置与菜单关联的帮助文本的ID号
可覆盖的函数
DrawItem
通过框架来调用,其发生于拥有者菜单的可视部分有所改变
MeasureItem
通过框架来调用,用于决定当创建了拥有者菜单时的菜单维数
原文地址:https://www.cnblogs.com/IMyLife/p/4826116.html