CMFCKeyMapDialog クラス
CMFCKeyMapDialog
クラスは、キーボードのキーにコマンドをマップするコントロールをサポートしています。
構文
class CMFCKeyMapDialog : public CDialogEx
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CMFCKeyMapDialog::CMFCKeyMapDialog | CMFCKeyMapDialog オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CMFCKeyMapDialog::D oModal | キーボード マッピング ダイアログ ボックスを表示します。 |
保護メソッド
名前 | 説明 |
---|---|
CMFCKeyMapDialog::FormatItem | キー マッピングを記述する文字列を構築するためにフレームワークによって呼び出されます。 既定では、文字列にはコマンド名、使用されるショートカット キー、およびショートカット キーの説明が含まれます。 |
CMFCKeyMapDialog::GetCommandKeys | 指定したコマンドに関連付けられているショートカット キーの一覧を含む文字列を取得します。 |
CMFCKeyMapDialog::OnInsertItem | キーボード マッピング コントロールをサポートする内部リスト コントロールに新しい項目が挿入される前に、フレームワークによって呼び出されます。 |
CMFCKeyMapDialog::OnPrintHeader | キーボード マップのヘッダーを新しいページに出力するためにフレームワークによって呼び出されます。 |
CMFCKeyMapDialog::OnPrintItem | キーボード マッピング項目を出力するためにフレームワークによって呼び出されます。 |
CMFCKeyMapDialog::OnSetColumns | キーボード マッピング コントロールをサポートする内部リスト コントロール内の列のキャプションを設定するためにフレームワークによって呼び出されます。 |
CMFCKeyMapDialog::P rintKeyMap | ユーザーが Print ボタンをクリックしたときにフレームワークによって呼び出されます。 |
CMFCKeyMapDialog::SetColumnsWidth | キーボード マッピング コントロールをサポートする内部リスト コントロールの列の幅を設定するためにフレームワークによって呼び出されます。 |
解説
CMFCKeyMapDialog
クラスを使用して、サイズ変更可能なキーボード マッピング ダイアログ ボックスを実装します。 このダイアログ ボックスでは、リスト ビュー コントロールを使用して、キーボード ショートカットとそれに関連するコマンドを表示します。
アプリケーションで CMFCKeyMapDialog
クラスを使用するには、メイン フレーム ウィンドウへのポインターをパラメーターとして CMFCKeyMapDialog
コンストラクターに渡します。 次に、 DoModal
メソッドを呼び出してモーダル ダイアログ ボックスを開始します。
継承階層
要件
Header: afxkeymapdialog.h
CMFCKeyMapDialog::CMFCKeyMapDialog
CMFCKeyMapDialog
オブジェクトを構築します。
CMFCKeyMapDialog(
CFrameWnd* pWndParentFrame,
BOOL bEnablePrint=FALSE);
パラメーター
pWndParentFrame
[in] CMFCKeyMapDialog
オブジェクトの親ウィンドウへのポインター。
bEnablePrint
[in]アクセラレータ キーの一覧を印刷できる場合は TRUE。それ以外の場合は FALSE。 既定値は FALSE です。
解説
例
次の例では、 CMFCKeyMapDialog
クラスのオブジェクトを構築する方法を示します。 この例は、 Visual Studio Demo サンプルの一部です。
// this points to a CMainFrame class which extends the
// CMDIFrameWndEx class
CMFCKeyMapDialog dlg(this, TRUE /* Enable Print */);
CMFCKeyMapDialog::D oModal
キーボード マッピング ダイアログ ボックスを表示します。
virtual INT_PTR DoModal();
戻り値
CDialog::EndDialog メソッドに渡される符号付き整数 (IDOK、IDCANCEL など)。 このメソッドは、ダイアログ ボックスを閉じます。 詳細については、「 CDialog::D oModalを参照してください。
解説
キーボード マッピング ダイアログ ボックスを使用すると、さまざまなカテゴリのコマンドにアクセラレータ キーを選択して割り当てることができます。 さらに、選択したアクセラレータ キーとその説明をクリップボードにコピーできます。
CMFCKeyMapDialog::FormatItem
キー マッピングを記述する文字列を構築するためにフレームワークによって呼び出されます。 既定では、文字列にはコマンド名、使用されるショートカット キー、およびショートカット キーの説明が含まれます。
virtual CString FormatItem(int nItem) const;
パラメーター
nItem
[in]キー マッピングの内部リスト内の項目の 0 から始まるインデックス。
戻り値
書式設定された項目テキストを含む CString
オブジェクト。
解説
CMFCKeyMapDialog::GetCommandKeys
文字列値を取得します。 文字列には、指定したコマンドに関連付けられているショートカット キーの一覧が含まれています。
virtual CString GetCommandKeys(UINT uiCmdID) const;
パラメーター
uiCmdID
[in]コマンド ID。
戻り値
指定したコマンドに(';')関連付けられているショートカット キーのセミコロン区切りの一覧。
解説
CMFCKeyMapDialog::OnInsertItem
キーボード マッピング コントロールをサポートする内部リスト コントロールに新しい項目が挿入される前に、フレームワークによって呼び出されます。
virtual void OnInsertItem(
CMFCToolBarButton* pButton,
int nItem);
パラメーター
pButton
[in]キーボード キーの組み合わせをコマンド名と説明にマップするために使用されるツール バー ボタンへのポインター。 キー マップ項目は、内部リスト コントロールに格納されます。
nItem
[in]内部リスト コントロールに新しいキー マップ項目を挿入する場所を指定する 0 から始まるインデックス。
解説
CMFCKeyMapDialog::OnPrintHeader
キーボード マップのヘッダーを新しいページに出力するためにフレームワークによって呼び出されます。
virtual int OnPrintHeader(
CDC& dc,
int nPage,
int cx) const;
パラメーター
dc
[in]プリンターのデバイス コンテキスト。
nPage
[in]印刷するページ番号。
cx
[in]ヘッダーの水平方向のオフセット (ピクセル単位)。
戻り値
成功した場合は、印刷されたテキストの高さ。 詳細については、「 CDC::D rawText の戻り値」セクションを参照してください。
解説
フレームワークでは、このメソッドを使用してキーボード マップを印刷します。 既定では、このメソッドはページ番号、アプリケーション名、およびダイアログ ボックスのタイトルを出力します。
CMFCKeyMapDialog::OnPrintItem
キーボード マッピング項目を出力するためにフレームワークによって呼び出されます。
virtual int OnPrintItem(
CDC& dc,
int nItem,
int y,
int cx,
BOOL bCalcHeight) const;
パラメーター
dc
[in]プリンターのデバイス コンテキスト。
nItem
[in]印刷する項目の 0 から始まるインデックス。
y
[in]ページの上部と項目の位置の間の垂直方向のオフセット。
cx
[in]ページの左側と項目の位置の間の水平方向のオフセット。
bCalcHeight
[in]印刷項目に最適な高さを計算する場合は TRUE。既定のスペースに収まるように印刷項目を切り捨てる場合は FALSE。
戻り値
印刷されたアイテムの高さ。
解説
フレームワークは、このメソッドを呼び出して、キー マップ ダイアログ ボックス項目を出力します。 既定では、このメソッドは項目のコマンド名、ショートカット キー、およびコマンドの説明を出力します。
CMFCKeyMapDialog::OnSetColumns
キーボード マッピング コントロールをサポートする内部リスト コントロール内の列のキャプションを設定するためにフレームワークによって呼び出されます。
virtual void OnSetColumns();
解説
既定では、このメソッドは 3 つのリソースから列のキャプションを取得します。 コマンド列のキャプションはIDS_AFXBARRES_COMMANDから、キー列のキャプションはIDS_AFXBARRES_KEYSから、説明列のキャプションはIDS_AFXBARRES_DESCRIPTIONから取得されます。
CMFCKeyMapDialog::P rintKeyMap
ユーザーが Print ボタンをクリックしたときにフレームワークによって呼び出されます。
virtual void PrintKeyMap();
解説
PrintKeyMap
メソッドは、キー マップを出力します。 新しい印刷ジョブを開始し、すべてのキー マッピングが印刷されるまで、 CMFCKeyMapDialog::OnPrintHeader および CMFCKeyMapDialog::OnPrintItem メソッドを繰り返し呼び出します。
CMFCKeyMapDialog::SetColumnsWidth
キーボード マッピング コントロールをサポートする内部リスト コントロールの列の幅を設定するためにフレームワークによって呼び出されます。
virtual void SetColumnsWidth();
解説
このメソッドは、内部リスト コントロールの列を既定の幅に設定します。 まず、ショートカット キー列の幅が計算されます。 その後、残りの幅の 3 分の 1 がコマンド列に割り当てられ、残りの 3 分の 2 が説明列に割り当てられます。