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 メソッドを使用して共有メンバー データを設定します。
継承階層
要件
Header: afxcmdusagecount.h
CMFCCmdUsageCount::AddCmd
指定されたコマンドに関連付けられているカウンターを 1 ずつインクリメントします。
void AddCmd(UINT uiCmd);
パラメーター
uiCmd
[in]インクリメントするコマンド カウンターを指定します。
解説
このメソッドは、エントリがまだ存在しない場合は、 m_CmdUsage
コマンドカウントのマップ構造に新しいエントリを追加します。
このメソッドは、次の場合には何も行いません。
ツール バー フレームワークはカスタマイズ モードです ( CMFCToolBar::IsCustomizeMode メソッドは 0 以外の値を返します)。
このコマンドは、サブメニューまたはメニュー区切り記号 ( uiCmd 0 または -1) を参照します。
uiCmd は標準コマンドを参照します (グローバル
IsStandardCommand
関数は 0 以外の値を返します)。
CMFCCmdUsageCount::GetCount
指定されたコマンド ID に関連付けられている使用状況の数を取得します。
UINT GetCount(UINT uiCmd) const;
パラメーター
uiCmd
[in]取得するコマンド カウンターの ID。
戻り値
指定されたコマンド ID に関連付けられている使用状況の数。
CMFCCmdUsageCount::HasEnoughInformation
このオブジェクトが追跡データの最小量を受け取ったかどうかを判断します。
BOOL HasEnoughInformation() const;
戻り値
このオブジェクトが追跡データの最小量を受け取った場合は 0 以外。それ以外の場合は 0。
解説
このメソッドは、すべての追跡対象コマンドの合計カウント ( m_nTotalUsage
) が初期カウント ( m_nStartCount
) 以上の場合、0 以外の値を返します。 既定では、フレームワークは初期カウント 0 を設定します。 この値は、 CMFCCmdUsageCount::SetOptions メソッドを使用してオーバーライドできます。
このメソッドは、 CMFCMenuBar::IsShowAllCommands で使用可能なすべてのメニュー コマンドを表示するかどうかを決定するために使用されます。
CMFCCmdUsageCount::IsFreqeuntlyUsedCmd
指定されたコマンドが頻繁に使用されるかどうかを判断します。
BOOL IsFreqeuntlyUsedCmd(UINT uiCmd) const;
パラメーター
uiCmd
[in]チェックするコマンドを指定します。
戻り値
コマンドが頻繁に使用される場合は 0 以外。それ以外の場合は 0。
解説
コマンドの合計使用量 ( m_nTotalUsage
) が 0 の場合、このメソッドは 0 を返します。 それ以外の場合、このメソッドは、指定したコマンドが使用される割合が最小パーセンテージ ( m_nMinUsagePercentage
) より大きい場合、0 以外の値を返します。 既定では、フレームワークは最小パーセンテージを 5 に設定します。 この値は、 CMFCCmdUsageCount::SetOptions メソッドを使用してオーバーライドできます。 最小パーセンテージが 0 の場合、指定したコマンド数が 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_nStartCount
は、 CMFCCmdUsageCount::HasEnoughInformation メソッドによって使用され、このオブジェクトが最小量の追跡データを収集したかどうかを判断します。 m_nMinUsagePercentage
は、 CMFCCmdUsageCount::IsFreqeuntlyUsedCmd メソッドによって使用され、特定のコマンドが頻繁に使用されるかどうかを判断します。
Debug ビルドでは、このメソッドは、 nMinUsagePercentage パラメーターが 100 以上の場合にアサーション エラーを生成します。