CMFCCmdUsageCount 类
跟踪 Windows 消息的使用计数(例如当用户从菜单中选择项时)。
语法
class CMFCCmdUsageCount : public CObject
成员
公共构造函数
名称 | 描述 |
---|---|
CMFCCmdUsageCount::CMFCCmdUsageCount |
默认构造函数。 |
CMFCCmdUsageCount::~CMFCCmdUsageCount |
析构函数。 |
公共方法
名称 | 描述 |
---|---|
CMFCCmdUsageCount::AddCmd | 按 1 递增与给定命令关联的计数器。 |
CMFCCmdUsageCount::GetCount | 检索与给定命令 ID 关联的使用计数。 |
CMFCCmdUsageCount::HasEnoughInformation | 确定此对象是否收集了最小跟踪数据量。 |
CMFCCmdUsageCount::IsFreqeuntlyUsedCmd | 确定是否经常使用给定命令。 |
CMFCCmdUsageCount::Reset | 清除所有命令的使用计数。 |
CMFCCmdUsageCount::Serialize | 从存档中读取此对象或将其写入存档。 (重写 CObject::Serialize。) |
CMFCCmdUsageCount::SetOptions | 设置共享 CMFCCmdUsageCount 类数据成员的值。 |
数据成员
名称 | 描述 |
---|---|
m_CmdUsage |
将命令映射到其使用计数的 CMap 对象。 |
m_nMinUsagePercentage |
常用命令的最小使用百分比。 |
m_nStartCount |
起始计数器,用于确定此对象是否收集了最小跟踪数据量。 |
m_nTotalUsage |
所有受跟踪的命令的计数。 |
备注
CMFCCmdUsageCount
类将每个数字 Windows 消息标识符映射到 32 位无符号整数计数器。 CMFCToolBar
使用此类来显示常用工具栏项。 有关 CMFCToolBar
的详细信息,请参阅 CMFCToolBar 类。
可以在程序的不同运行之间保留 CMFCCmdUsageCount
类数据。 使用 CMFCCmdUsageCount::Serialize 方法序列化类成员数据,使用 CMFCCmdUsageCount::SetOptions 方法设置共享成员数据。
继承层次结构
要求
头文件:afxcmdusagecount.h
CMFCCmdUsageCount::AddCmd
按 1 递增与给定命令关联的计数器。
void AddCmd(UINT uiCmd);
参数
uiCmd
[in] 指定要递增的命令计数器。
备注
此方法将新条目添加到命令计数 m_CmdUsage
的映射结构(如果条目尚不存在)。
此方法在以下情况下不执行任何操作:
工具栏框架处于自定义模式(CMFCToolBar::IsCustomizeMode 方法返回非零值)。
此命令引用子菜单或菜单分隔符(uiCmd 等于 0 或 -1)。
uiCmd 是指标准命令(全局
IsStandardCommand
函数返回非零值)。
CMFCCmdUsageCount::GetCount
检索与给定命令 ID 关联的使用计数。
UINT GetCount(UINT uiCmd) const;
参数
uiCmd
[in] 要检索的命令计数器的 ID。
返回值
与给定命令 ID 关联的使用计数。
CMFCCmdUsageCount::HasEnoughInformation
确定此对象是否检索了最小跟踪数据量。
BOOL HasEnoughInformation() const;
返回值
如果此对象已接收最小跟踪数据量,则为非零值;否则为 0。
注解
如果所有受跟踪的命令的总计数 m_nTotalUsage
等于或大于初始计数 m_nStartCount
,则此方法返回非零值。 默认情况下,框架将初始计数设置为 0。 可以使用 CMFCCmdUsageCount::SetOptions 方法替代此值。
CMFCMenuBar::IsShowAllCommands 使用此方法确定是否显示所有可用的菜单命令。
CMFCCmdUsageCount::IsFreqeuntlyUsedCmd
确定是否经常使用给定命令。
BOOL IsFreqeuntlyUsedCmd(UINT uiCmd) const;
参数
uiCmd
[in] 指定要检查的命令。
返回值
如果经常使用命令,则为非零值;否则为 0。
备注
如果命令总使用次数 m_nTotalUsage
为 0,则此方法返回 0。 否则,如果指定命令的使用次数百分比大于最小百分比 m_nMinUsagePercentage
,则此方法返回非零值。 默认情况下,框架将最小百分比设置为 5。 可以使用 CMFCCmdUsageCount::SetOptions 方法替代此值。 如果最小百分比为 0,则此方法返回非零值,前提是指定的命令计数大于 0。
CMFCToolBar::IsCommandRarelyUsed 使用此方法来确定某个命令是否很少使用。
CMFCCmdUsageCount::Reset
清除所有命令的使用计数。
void Reset();
注解
调用此方法可清除命令计数 m_CmdUsage
的映射结构中的所有条目,并将总命令使用次数 m_nTotalUsage
计数器重置为 0。
CMFCCmdUsageCount::Serialize
从存档中读取此对象或将其写入存档。
virtual void Serialize(CArchive& ar);
参数
ar
[in] 要对其来回进行序列化的 CArchive
对象。
注解
此方法序列化命令计数 m_CmdUsage
的映射结构,并将总命令使用次数 m_nTotalUsage
计数器从指定的存档序列化或序列化到其中。
有关序列化示例,请参阅序列化:对象的序列化。
CMFCCmdUsageCount::SetOptions
设置共享 CMFCCmdUsageCount
类数据成员的值。
static BOOL __stdcall SetOptions(
UINT nStartCount,
UINT nMinUsagePercentage);
参数
nStartCount
[in] 所有受跟踪命令的新初始计数。
nMinUsagePercentage
[in] 新的最小使用次数百分比。
返回值
如果此方法成功,则为 TRUE;如果 nMinUsagePercentage 参数大于或等于 100,则为 FALSE。
备注
此方法将共享 CMFCCmdUsageCount
类数据成员 m_nStartCount
和 m_nMinUsagePercentage
分别设置为 nStartCount 和 nMinUsagePercentage。 CMFCCmdUsageCount::HasEnoughInformation 方法使用 m_nStartCount
来确定此对象是否收集了最小跟踪数据量。 CMFCCmdUsageCount::IsFreqeuntlyUsedCmd 方法使用 m_nMinUsagePercentage
来确定是否经常使用给定命令。
在调试生成中,如果 nMinUsagePercentage 参数大于或等于 100,则此方法生成一个断言失败。