小默

[zz]MFC - CMenu类

CObject
 └CMenu

CMenu类为Windows HMENU的封装类。它提供了成员函数以用于创建、追踪、更新及销毁菜单
本地的堆栈框架中创建一个CMenu对象,然后调用CMenu的成员函数来操纵所需的新菜单。
接着,调用CWnd::SetMenu函数为窗口设置菜单。然后立即调用CMenu对象的Detach成员函数。CWnd::SetMenu成员函数将窗口的菜单设置为新菜单,这将导致在窗口刷新后将影响菜单的改变,同时也将菜单的拥有者传递给窗口。调用Detach函数将把HMENU从CMenu对象中分离出来,以便当本地的CMenu变量超出范围后,CMenu对象的构造函数将不会销毁不再拥有的菜单。当窗口销毁后,菜单自动销毁
可以调用LoadMenuIndirect成员函数在内存中创建来自模板的菜单,不过通过调用LoadMenu创建的菜单更容易维护。并且这种菜单资源本身也可以由菜单编辑器创建或修改。
#include <afxwin.h>

CMenu类的成员

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

posted on 2009-10-23 15:57 小默 阅读(963) 评论(0)  编辑 收藏 引用 所属分类: Language


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

留言簿(13)

随笔分类(287)

随笔档案(289)

漏洞

搜索

积分与排名

最新评论

阅读排行榜