追蹤 Windows 訊息的使用計數,例如當使用者從功能表中選取專案時。
語法
class CMFCCmdUsageCount : public CObject
成員
公用建構函式
| 名稱 | 描述 |
|---|---|
CMFCCmdUsageCount::CMFCCmdUsageCount |
預設建構函式。 |
CMFCCmdUsageCount::~CMFCCmdUsageCount |
解構函式。 |
公用方法
| 名稱 | 描述 |
|---|---|
| CMFCCmdUsageCount::AddCmd | 遞增一個與指定命令相關聯的計數器。 |
| CMFCCmdUsageCount::GetCount | 擷取與指定命令標識符相關聯的使用計數。 |
| 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
遞增一個與指定命令相關聯的計數器。
void AddCmd(UINT uiCmd);
參數
uiCmd
[in]指定要遞增的命令計數器。
備註
如果專案不存在, m_CmdUsage這個方法會將新的專案新增至命令計數的對應結構。
此方法在下列情況下不會執行任何動作:
工具列架構處於自定義模式( CMFCToolBar::IsCustomizeMode 方法會傳回非零值)。
此命令是指子功能表或功能表分隔符( uiCmd 等於 0 或 -1)。
uiCmd 是指標準命令(全域
IsStandardCommand函式會傳回非零值)。
CMFCCmdUsageCount::GetCount
擷取與指定命令標識符相關聯的使用計數。
UINT GetCount(UINT uiCmd) const;
參數
uiCmd
[in]要擷取之命令計數器的標識碼。
傳回值
與指定命令標識碼相關聯的使用計數。
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。
備註
如果命令使用量總計為 0, m_nTotalUsage這個方法會傳回 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。 m_nStartCountCMFCCmdUsageCount::HasEnoughInformation 方法會用來判斷此物件是否已收集追蹤數據的最小數量。 m_nMinUsagePercentageCMFCCmdUsageCount::IsFreqeuntlyUsedCmd 方法會用來判斷指定的命令是否經常使用。
在 [偵錯] 中,如果 nMinUsagePercentage 參數大於或等於 100,這個方法會產生判斷提示失敗。