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 方法设置共享成员数据。

继承层次结构

CObject

CMFCCmdUsageCount

要求

头文件: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_nStartCountm_nMinUsagePercentage 分别设置为 nStartCount 和 nMinUsagePercentageCMFCCmdUsageCount::HasEnoughInformation 方法使用 m_nStartCount 来确定此对象是否收集了最小跟踪数据量。 CMFCCmdUsageCount::IsFreqeuntlyUsedCmd 方法使用 m_nMinUsagePercentage 来确定是否经常使用给定命令。

在调试生成中,如果 nMinUsagePercentage 参数大于或等于 100,则此方法生成一个断言失败。

另请参阅

层次结构图

CMFCToolBar 类