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 通过框架来调用,用于决定当创建了拥有者菜单时的菜单维数