CMFCToolBarsCustomizeDialog クラス

モードレス タブ ダイアログ ボックス ( CPropertySheet クラス) を使用すると、ユーザーはアプリケーションのツール バー、メニュー、キーボード ショートカット、ユーザー定義ツール、およびビジュアル スタイルをカスタマイズできます。 通常、このダイアログ ボックスを表示するには、 [ツール] メニューの [ユーザー設定] をクリックします。

Customize ダイアログ ボックスには、CommandsToolbarsToolsKeyboardMenuOptions の 6 つのタブがあります

構文

class CMFCToolBarsCustomizeDialog : public CPropertySheet

メンバー

パブリック コンストラクター

名前 説明
CMFCToolBarsCustomizeDialog::CMFCToolBarsCustomizeDialog CMFCToolBarsCustomizeDialog オブジェクトを構築します。
CMFCToolBarsCustomizeDialog::~CMFCToolBarsCustomizeDialog デストラクターです。

パブリック メソッド

名前 説明
CMFCToolBarsCustomizeDialog::AddButton Commands ページのコマンドの一覧にツール バー ボタンを挿入します。
CMFCToolBarsCustomizeDialog::AddMenu リソースからメニューを読み込み、 CMFCToolBarsCustomizeDialog::AddMenuCommands を呼び出して、そのメニューを Commands ページのコマンドの一覧に追加します。
CMFCToolBarsCustomizeDialog::AddMenuCommands リソースからメニューを読み込み、 CMFCToolBarsCustomizeDialog::AddMenuCommands を呼び出して、そのメニューを Commands ページのコマンドの一覧に追加します。
CMFCToolBarsCustomizeDialog::AddToolBar リソースからツール バーを読み込みます。 次に、メニューの各コマンドについて、 CMFCToolBarsCustomizeDialog::AddButton メソッドを呼び出して、指定したカテゴリの下にある Commands ページのコマンドの一覧にボタンを挿入します。
CMFCToolBarsCustomizeDialog::Create Customization ダイアログ ボックスを表示します。
CMFCToolBarsCustomizeDialog::EnableTools 将来の使用のために予約済み。
CMFCToolBarsCustomizeDialog::EnableUserDefinedToolbars Customize ダイアログ ボックスを使用して、新しいツール バーの作成を有効または無効にします。
CMFCToolBarsCustomizeDialog::FillAllCommandsList 指定した CListBox オブジェクトに、 All Commands カテゴリのコマンドを設定します。
CMFCToolBarsCustomizeDialog::FillCategoriesComboBox 指定した CComboBox オブジェクトに、 Customize ダイアログ ボックスの各コマンド カテゴリの名前を設定します。
CMFCToolBarsCustomizeDialog::FillCategoriesListBox 指定した CListBox オブジェクトに、 Customize ダイアログ ボックスの各コマンド カテゴリの名前を設定します。
CMFCToolBarsCustomizeDialog::GetCommandName 指定されたコマンド ID に関連付けられている名前を取得します。
CMFCToolBarsCustomizeDialog::GetCountInCategory 指定されたテキスト ラベルを持つ指定されたリスト内の項目の数を取得します。
CMFCToolBarsCustomizeDialog::GetFlags ダイアログ ボックスの動作に影響するフラグのセットを取得します。
CMFCToolBarsCustomizeDialog::GetThisClass このクラス型に関連付けられている CRuntimeClass オブジェクトへのポインターを取得するためにフレームワークによって使用されます。
CMFCToolBarsCustomizeDialog::OnEditToolbarMenuImage ユーザーがツール バー ボタンまたはメニュー項目アイコンをカスタマイズできるように、イメージ エディターを起動します。
CMFCToolBarsCustomizeDialog::OnInitDialog プロパティ シートの初期化を拡張するためにオーバーライドします。 ( をオーバーライドしますCPropertySheet::OnInitDialog.)
CMFCToolBarsCustomizeDialog::P ostNcDestroy ウィンドウが破棄された後、フレームワークによって呼び出されます。 ( CPropertySheet::PostNcDestroyをオーバーライドします)。
CMFCToolBarsCustomizeDialog::RemoveButton 指定したコマンド ID を持つボタンを、指定したカテゴリまたはすべてのカテゴリから削除します。
CMFCToolBarsCustomizeDialog::RenameCategory Commands タブのカテゴリのリスト ボックスでカテゴリの名前を変更します。
CMFCToolBarsCustomizeDialog::ReplaceButton Commands タブのコマンドの一覧にあるボタンを新しいツール バー ボタン オブジェクトに置き換えます。
CMFCToolBarsCustomizeDialog::SetUserCategory Commands タブに表示されるカテゴリの一覧にカテゴリを追加します。

保護メソッド

名前 説明
CMFCToolBarsCustomizeDialog::CheckToolsValidity ユーザー定義ツールの一覧が有効かどうかを判断するために、フレームワークによって呼び出されます。
CMFCToolBarsCustomizeDialog::OnAfterChangeTool ユーザー定義ツールのプロパティが変更されたときにフレームワークによって呼び出されます。
CMFCToolBarsCustomizeDialog::OnAssignKey 指定したキーボード ショートカットをアクションに割り当てることができるかどうかを指定します。
CMFCToolBarsCustomizeDialog::OnBeforeChangeTool ユーザー定義ツールを変更できるかどうかを決定します。
CMFCToolBarsCustomizeDialog::OnInitToolsPage ユーザーが Tools タブを選択したときにフレームワークによって呼び出されます。

解説

Customize ダイアログ ボックスを表示するには、CMFCToolBarsCustomizeDialog オブジェクトを作成し、CMFCToolBarsCustomizeDialog::Create メソッドを呼び出します。

Customize ダイアログ ボックスがアクティブになっている間、アプリケーションは、ユーザーをカスタマイズ タスクに制限する特別なモードで動作します。

CMFCToolBarsCustomizeDialog クラスのさまざまなメソッドの使用方法を次の例に示します。 この例では、 Commands ページのコマンドのリスト ボックスでツール バー ボタンを置き換え、 Customize ダイアログ ボックスを使用して新しいツール バーの作成を有効にして、 Customization ダイアログ ボックスを表示する方法を示します。 このコード スニペットは、 IE Demo サンプルの一部です。

pDlgCust->ReplaceButton(ID_FAVORITS_DUMMY,
                        CMFCToolBarMenuButton((UINT)-1, menuFavorites, -1, strFavorites));
pDlgCust->EnableUserDefinedToolbars();
pDlgCust->Create();

継承階層

CObject

CCmdTarget

CWnd

CPropertySheet

CMFCToolBarsCustomizeDialog

要件

Header: afxToolBarsCustomizeDialog.h

CMFCToolBarsCustomizeDialog::AddButton

Commands ページのコマンドの一覧にツール バー ボタンを挿入します。

void AddButton(
    UINT uiCategoryId,
    const CMFCToolBarButton& button,
    int iInsertBefore=-1);

void AddButton(
    LPCTSTR lpszCategory,
    const CMFCToolBarButton& button,
    int iInsertBefore=-1);

パラメーター

uiCategoryId
[in]ボタンを挿入するカテゴリ ID を指定します。

ボタン
[in]挿入するボタンを指定します。

iInsertBefore
[in]ボタンを挿入する前のツール バー ボタンの 0 から始まるインデックスを指定します。

lpszCategory
[in]ボタンを挿入するカテゴリ文字列を指定します。

解説

AddButton メソッドは、標準のコマンド ID (ID_FILE_MRU_FILE1 など)、許可されていないコマンド (CMFCToolBar::IsCommandPermitted を参照) およびダミー ボタンを持つボタンを無視します。

このメソッドは、ボタンのランタイム クラスを使用して、 button (通常は CMFCToolBarButton クラス) と同じ型の新しいオブジェクトを作成します。 次に、 CMFCToolBarButton::CopyFrom を呼び出してボタンのデータ メンバーをコピーし、指定したカテゴリにコピーを挿入します。

新しいボタンが挿入されると、 OnAddToCustomizePage 通知を受け取ります。

iInsertBeforeが -1 の場合、ボタンはカテゴリの一覧に追加されます。それ以外の場合は、指定したインデックスを持つ項目の前に挿入されます。

次の例では、CMFCToolBarsCustomizeDialog クラスの AddButton メソッドを使用する方法を示します。 このコード スニペットは、 Slider サンプルの一部です。

CMFCToolBarsCustomizeDialog *pDlgCust = new CMFCToolBarsCustomizeDialog(this,
                                                                        TRUE /* Automatic menus scaning */);

CSliderButton btnSlider(ID_SLIDER);
btnSlider.SetRange(0, 100);

pDlgCust->AddButton(_T("Edit"), btnSlider);

CMFCToolBarsCustomizeDialog::AddMenu

リソースからメニューを読み込み、 CMFCToolBarsCustomizeDialog::AddMenuCommands を呼び出して、そのメニューを Commands ページのコマンドの一覧に追加します。

BOOL AddMenu(UINT uiMenuResId);

パラメーター

uiMenuResId
[in]読み込むメニューのリソース ID を指定します。

戻り値

メニューが正常に追加された場合は TRUE。それ以外の場合は FALSE。

解説

AddMenuCommandsの呼び出しでは、bPopup は FALSE です。 その結果、そのメソッドは、サブメニューを含むメニュー項目をコマンドの一覧に追加しません。 このメソッドは、サブメニュー内のメニュー項目をコマンドの一覧に追加します。

CMFCToolBarsCustomizeDialog::AddMenuCommands

Commands ページのコマンドの一覧に項目を追加して、指定したメニューのすべての項目を表します。

void AddMenuCommands(
    const CMenu* pMenu,
    BOOL bPopup,
    LPCTSTR lpszCategory=NULL,
    LPCTSTR lpszMenuPath=NULL);

パラメーター

pMenu
[in]追加する CMenu オブジェクトへのポインター。

bPopup
[in]ポップアップ メニュー項目をコマンドの一覧に挿入するかどうかを指定します。

lpszCategory
[in]メニューを挿入するカテゴリの名前。

lpszMenuPath
[in]コマンドが All Categories リストに表示されるときに名前に追加されるプレフィックス。

解説

AddMenuCommands メソッドは、pMenu のすべてのメニュー項目をループします。 サブメニューを含まないメニュー項目ごとに、このメソッドは CMFCToolBarButton クラス オブジェクトを作成し、 CMFCToolBarsCustomizeDialog::AddButton メソッドを呼び出して、メニュー項目をツール バー ボタンとして Commands ページのコマンドの一覧に追加します。 このプロセスでは、区切り記号は無視されます。

bPopup が TRUE の場合、サブメニューを含むメニュー項目ごとに、このメソッドは CMFCToolBarMenuButton クラス オブジェクトを作成し、AddButtonを呼び出してコマンドの一覧に挿入します。 それ以外の場合、サブメニューを含むメニュー項目はコマンドの一覧に表示されません。 いずれの場合も、サブメニュー AddMenuCommands メニュー項目が見つかると、それ自体が再帰的に呼び出され、サブメニューへのポインターが pMenu パラメーターとして渡され、サブメニューのラベルが lpszMenuPath に追加されます。

CMFCToolBarsCustomizeDialog::AddToolBar

リソースからツール バーを読み込みます。 次に、メニューの各コマンドについて、 CMFCToolBarsCustomizeDialog::AddButton メソッドを呼び出して、指定したカテゴリの下にある Commands ページのコマンドの一覧にボタンを挿入します。

BOOL AddToolBar(
    UINT uiCategoryId,
    UINT uiToolbarResId);

BOOL AddToolBar(
    LPCTSTR lpszCategory,
    UINT uiToolbarResId);

パラメーター

uiCategoryId
[in]ツール バーを追加するカテゴリのリソース ID を指定します。

uiToolbarResId
[in]コマンドの一覧にコマンドを挿入するツール バーのリソース ID を指定します。

lpszCategory
[in]ツール バーを追加するカテゴリの名前を指定します。

戻り値

メソッドが成功した場合は TRUE。それ以外の場合は FALSE。

次の例では、CMFCToolBarsCustomizeDialog クラスで AddToolBar メソッドを使用する方法を示します。 このコード スニペットは、 Word パッド サンプルの一部です。

CMFCToolBarsCustomizeDialog *pDlgCust = new CMFCToolBarsCustomizeDialog(this,
                                                                        TRUE /* Automatic menus scaning */,
                                                                        AFX_CUSTOMIZE_MENU_SHADOWS | AFX_CUSTOMIZE_TEXT_LABELS |
                                                                            AFX_CUSTOMIZE_MENU_ANIMATIONS);

pDlgCust->AddToolBar(_T("Format"), IDR_FORMATBAR);

解説

各コマンドを表すために使用されるコントロールは、 CMFCToolBarButton クラス オブジェクトです。 ツール バーを追加した後は、 CMFCToolBarsCustomizeDialog::ReplaceButton を呼び出すことによって、ボタンを派生型のコントロールに置き換えることができます。

CMFCToolBarsCustomizeDialog::CheckToolsValidity

ユーザー ツールの一覧の有効性を確認します。

virtual BOOL CheckToolsValidity(const CObList& lstTools);

パラメーター

lstTools
[in]チェックするユーザー定義ツールの一覧。

戻り値

ユーザー定義ツールの一覧が有効な場合は TRUE を返します。それ以外の場合は FALSE。 既定の実装では常に TRUE が返されます。

解説

フレームワークは、このメソッドを呼び出して、 CMFCToolBarsCustomizeDialog::CheckToolsValidity によって返されるユーザー定義ツールを表すオブジェクトの有効性を確認します。

ユーザーがダイアログ ボックスを閉じる前にユーザー ツールを検証する場合は、CMFCToolBarsCustomizeDialogから派生したクラスのCheckToolsValidity メソッドをオーバーライドします。 ユーザーがダイアログ ボックスの右上隅にある Close ボタン、またはダイアログ ボックスの右下隅にある Close というラベルのボタンをクリックしたときに、このメソッドが FALSE を返す場合、ダイアログ ボックスは閉じる代わりに Tools タブを表示します。 ユーザーがタブをクリックして Tools タブから移動したときにこのメソッドが FALSE を返した場合、ナビゲーションは行われません。 検証が失敗した原因となった問題をユーザーに通知する適切なメッセージ ボックスを表示する必要があります。

CMFCToolBarsCustomizeDialog::CMFCToolBarsCustomizeDialog

CMFCToolBarsCustomizeDialog オブジェクトを構築します。

CMFCToolBarsCustomizeDialog(
    CFrameWnd* pWndParentFrame,
    BOOL bAutoSetFromMenus = FALSE,
    UINT uiFlags = (AFX_CUSTOMIZE_MENU_SHADOWS | AFX_CUSTOMIZE_TEXT_LABELS | AFX_CUSTOMIZE_MENU_ANIMATIONS | AFX_CUSTOMIZE_NOHELP),
    CList <CRuntimeClass*, CRuntimeClass*>* p listCustomPages = NULL);

パラメーター

pWndParentFrame
[in]親フレームへのポインター。 このパラメーターを NULL にすることはできません。

bAutoSetFromMenus
[in]すべてのメニューのメニュー コマンドを Commands ページのコマンドの一覧に追加するかどうかを指定するブール値。 このパラメーターが TRUE の場合、メニュー コマンドが追加されます。 それ以外の場合、メニュー コマンドは追加されません。

uiFlags
[in]ダイアログ ボックスの動作に影響するフラグの組み合わせ。 このパラメーターには、以下の値の 1 つ以上を指定できます。

  • AFX_CUSTOMIZE_MENU_SHADOWS

  • AFX_CUSTOMIZE_TEXT_LABELS

  • AFX_CUSTOMIZE_MENU_ANIMATIONS

  • AFX_CUSTOMIZE_NOHELP

  • AFX_CUSTOMIZE_CONTEXT_HELP

  • AFX_CUSTOMIZE_NOTOOLS

  • AFX_CUSTOMIZE_MENUAMPERS

  • AFX_CUSTOMIZE_NO_LARGE_ICONS

plistCustomPages
[in]追加のカスタム ページを指定 CRuntimeClass オブジェクトの一覧へのポインター。

解説

plistCustomPages パラメーターは、追加のカスタム ページを指定CRuntimeClassオブジェクトの一覧を参照します。 コンストラクターは、 CRuntimeClass::CreateObject メソッドを使用して、ダイアログ ボックスにさらにページを追加します。 Customize ダイアログ ボックスにページを追加する例については、CustomPages サンプルを参照してください。

uiFlags パラメーターで渡すことができる値の詳細については、「CMFCToolBarsCustomizeDialog::GetFlagsを参照してください。

次の例では、 CMFCToolBarsCustomizeDialog クラスのオブジェクトを構築する方法を示します。 このコード スニペットは、 Custom Pages サンプルの一部です。

CMFCToolBarsCustomizeDialog *pDlgCust = new CMFCToolBarsCustomizeDialog(this,
                                                                        TRUE /* Automatic menus scaning */,
                                                                        AFX_CUSTOMIZE_MENU_SHADOWS | AFX_CUSTOMIZE_TEXT_LABELS |
                                                                            AFX_CUSTOMIZE_MENU_ANIMATIONS, // default parameters
                                                                        &lstCustomPages);                  // pointer to the list of runtime classes of the custom property pages

CMFCToolBarsCustomizeDialog::Create

Customization ダイアログ ボックスを表示します。

virtual BOOL Create();

戻り値

カスタマイズ プロパティ シートが正常に作成された場合は TRUE。それ以外の場合は FALSE。

解説

クラスを完全に初期化した後にのみ、 Create メソッドを呼び出します。

CMFCToolBarsCustomizeDialog::EnableUserDefinedToolbars

Customize ダイアログ ボックスを使用して、新しいツール バーの作成を有効または無効にします。

void EnableUserDefinedToolbars(BOOL bEnable=TRUE);

パラメーター

bEnable
[in]ユーザー定義ツール バーを有効にする場合は TRUE。ツールバーを無効にする場合は FALSE。

解説

bEnable が TRUE の場合、NewRename および Delete ボタンが Toolbars ページに表示されます。

既定では、または bEnable が FALSE の場合、これらのボタンは表示されず、ユーザーは新しいツール バーを定義できません。

CMFCToolBarsCustomizeDialog::FillAllCommandsList

指定した CListBox オブジェクトに、 All Commands カテゴリのコマンドを設定します。

virtual void FillAllCommandsList(CListBox& wndListOfCommands) const;

パラメーター

wndListOfCommands
[out]設定する CListBox オブジェクトへの参照。

解説

すべてのコマンド カテゴリには、すべてのカテゴリのコマンドが含まれています。 CMFCToolBarsCustomizeDialog::AddButton メソッドは、指定されたボタンに関連付けられているコマンドを All Commands カテゴリに追加します。

このメソッドは、指定された CListBox オブジェクトの内容をクリアしてから、 All Commands カテゴリのコマンドを設定します。

CMFCMousePropertyPage クラスでは、このメソッドを使用してダブルクリック イベント リスト ボックスを設定します。

CMFCToolBarsCustomizeDialog::FillCategoriesComboBox

指定した CComboBox オブジェクトに、 Customize ダイアログ ボックスの各コマンド カテゴリの名前を設定します。

void FillCategoriesComboBox(
    CComboBox& wndCategory,
    BOOL bAddEmpty = TRUE) const;

パラメーター

wndCategory
[out]設定する CComboBox オブジェクトへの参照。

bAddEmpty
[in]コマンドのないコンボ ボックスにカテゴリを追加するかどうかを指定するブール値。 このパラメーターが TRUE の場合、空のカテゴリがコンボ ボックスに追加されます。 それ以外の場合、空のカテゴリは追加されません。

解説

このメソッドは、 CMFCToolBarsCustomizeDialog::FillCategoriesListBox メソッドに似ていますが、このメソッドは CComboBox オブジェクトで動作します。

このメソッドは、 CComboBox オブジェクトを設定する前に、その内容をクリアしません。 All Commands カテゴリがコンボ ボックスの最後の項目であることが保証されます。

CMFCToolBarsCustomizeDialog::AddButton メソッドを使用して、新しいコマンド カテゴリを追加できます。 CMFCToolBarsCustomizeDialog::RenameCategory メソッドを使用して、既存のカテゴリの名前を変更できます。

CMFCToolBarsKeyboardPropertyPageクラスとCMFCKeyMapDialog クラスでは、このメソッドを使用してキーボード マッピングを分類します。

CMFCToolBarsCustomizeDialog::FillCategoriesListBox

指定した CListBox オブジェクトに、 Customize ダイアログ ボックスの各コマンド カテゴリの名前を設定します。

void FillCategoriesListBox(
    CListBox& wndCategory,
    BOOL bAddEmpty = TRUE) const;

パラメーター

wndCategory
[out]設定する CListBox オブジェクトへの参照。

bAddEmpty
[in]コマンドがないリスト ボックスにカテゴリを追加するかどうかを指定するブール値。 このパラメーターが TRUE の場合、空のカテゴリがリスト ボックスに追加されます。 それ以外の場合、空のカテゴリは追加されません。

解説

このメソッドは CMFCToolBarsCustomizeDialog::FillCategoriesComboBox メソッドに似ていますが、このメソッドは CListBox オブジェクトで動作します。

このメソッドは、 CListBox オブジェクトを設定する前に、その内容をクリアしません。 すべてのコマンド カテゴリがリスト ボックスの最後の項目であることが保証されます。

CMFCToolBarsCustomizeDialog::AddButton メソッドを使用して、新しいコマンド カテゴリを追加できます。 CMFCToolBarsCustomizeDialog::RenameCategory メソッドを使用して、既存のカテゴリの名前を変更できます。

CMFCToolBarsCommandsPropertyPage クラスは、このメソッドを使用して、各コマンド カテゴリに関連付けられているコマンドの一覧を表示します。

CMFCToolBarsCustomizeDialog::GetCommandName

指定されたコマンド ID に関連付けられている名前を取得します。

LPCTSTR GetCommandName(UINT uiCmd) const;

パラメーター

uiCmd
[in]取得するコマンドの ID。

戻り値

指定されたコマンド ID に関連付けられている名前。コマンドが存在しない場合は NULL。

CMFCToolBarsCustomizeDialog::GetCountInCategory

指定されたテキスト ラベルを持つ指定されたリスト内の項目の数を取得します。

int GetCountInCategory(
    LPCTSTR lpszItemName,
    const CObList& lstCommands) const;

パラメーター

lpszItemName
[in]一致するテキスト ラベル。

lstCommands
[in] CMFCToolBarButton オブジェクトを含むリストへの参照。

戻り値

テキスト ラベルが lpszItemName と等しい、指定されたリスト内の項目の数。

解説

指定されたオブジェクト リスト内の各要素は、 CMFCToolBarButton型である必要があります。 このメソッドは、 lpszItemNameCMFCToolBarButton::m_strText データ メンバーと比較します。

CMFCToolBarsCustomizeDialog::GetFlags

ダイアログ ボックスの動作に影響するフラグのセットを取得します。

UINT GetFlags() const;

戻り値

ダイアログ ボックスの動作に影響するフラグのセット。

解説

このメソッドは、コンストラクターに渡される uiFlags パラメーターの値を取得します。 戻り値には、次の値のうち 1 つ以上を指定できます。

名前 説明
AFX_CUSTOMIZE_MENU_SHADOWS ユーザーがメニューの影の外観を指定できるようにします。
AFX_CUSTOMIZE_TEXT_LABELS ユーザーは、ツール バー ボタンの画像の下にテキスト ラベルを表示するかどうかを指定できます。
AFX_CUSTOMIZE_MENU_ANIMATIONS ユーザーがメニュー アニメーション スタイルを指定できるようにします。
AFX_CUSTOMIZE_NOHELP カスタマイズ ダイアログ ボックスからヘルプ ボタンを削除します。
AFX_CUSTOMIZE_CONTEXT_HELP WS_EX_CONTEXTHELP表示スタイルを有効にします。
AFX_CUSTOMIZE_NOTOOLS カスタマイズ ダイアログ ボックスから Tools ページを削除します。 このフラグは、アプリケーションで CUserToolsManager クラスを使用する場合に有効です。
AFX_CUSTOMIZE_MENUAMPERS ボタンのキャプションにアンパサンド ( &) 文字を含めます。
AFX_CUSTOMIZE_NO_LARGE_ICONS カスタマイズ ダイアログ ボックスから Large アイコン オプションを削除します。

WS_EX_CONTEXTHELP表示スタイルの詳細については、「 Extended Window Styles」を参照してください。

CMFCToolBarsCustomizeDialog::OnAfterChangeTool

ユーザー ツールの変更が発生した直後に応答します。

virtual void OnAfterChangeTool(CUserTool* pSelTool);

パラメーター

pSelTool
[入力、出力]変更されたユーザー ツール オブジェクトへのポインター。

解説

このメソッドは、ユーザーがユーザー定義ツールのプロパティを変更したときにフレームワークによって呼び出されます。 既定の実装では、何も行われません。 ユーザー ツールの変更後に処理を実行するには、 CMFCToolBarsCustomizeDialog から派生したクラスでこのメソッドをオーバーライドします。

CMFCToolBarsCustomizeDialog::OnAssignKey

ユーザーがキーボード ショートカットを定義する場合に、キーボード ショートカットを検証します。

virtual BOOL OnAssignKey(ACCEL* pAccel);

パラメーター

pAccel
[入力、出力] ACCEL 構造体として表される、提案されたキーボード割り当てへのポインター。

戻り値

キーを割り当てることができる場合は TRUE、キーを割り当てることができない場合は FALSE。 既定の実装では常に TRUE が返されます。

解説

ユーザーが新しいキーボード ショートカットを割り当てるときに追加の処理を実行したり、ユーザーがキーボード ショートカットを定義するときにキーボード ショートカットを検証したりするには、派生クラスでこのメソッドをオーバーライドします。 ショートカットが割り当てられないようにするには、FALSE を返します。 また、メッセージ ボックスを表示するか、キーボード ショートカットが拒否された理由をユーザーに通知する必要があります。

CMFCToolBarsCustomizeDialog::OnBeforeChangeTool

ユーザーが変更を適用しようとしているときに、ユーザー ツールに変更を適用するときにカスタム処理を実行します。

virtual void OnBeforeChangeTool(CUserTool* pSelTool);

パラメーター

pSelTool
[入力、出力]置き換えられるユーザー ツール オブジェクトへのポインター。

解説

このメソッドは、ユーザー定義ツールのプロパティが変更されようとしているときにフレームワークによって呼び出されます。 既定の実装では、何も行われません。 pSelTool使用するリソースの解放など、ユーザー ツールへの変更が発生する前に処理を実行する場合は、CMFCToolBarsCustomizeDialogから派生したクラスのOnBeforeChangeTool メソッドをオーバーライドします。

CMFCToolBarsCustomizeDialog::OnEditToolbarMenuImage

ユーザーがツール バー ボタンまたはメニュー項目アイコンをカスタマイズできるように、イメージ エディターを起動します。

virtual BOOL OnEditToolbarMenuImage(
    CWnd* pWndParent,
    CBitmap& bitmap,
    int nBitsPerPixel);

パラメーター

pWndParent
[in]親ウィンドウへのポインター。

ビットマップ
[in]編集するビットマップ オブジェクトへの参照。

nBitsPerPixel
[in]ビットマップの色の解像度 (ピクセルあたりのビット数)。

戻り値

変更がコミットされている場合は TRUE。それ以外の場合は FALSE。 既定の実装では、ダイアログ ボックスが表示され、ユーザーが OK をクリックした場合は TRUE、ユーザーが Cancel または Close ボタンをクリックした場合は FALSE を返します。

解説

このメソッドは、ユーザーがイメージ エディターを実行するときにフレームワークによって呼び出されます。 既定の実装では、CMFCImageEditorDialog クラス ダイアログ ボックスが表示されます。 カスタム イメージ エディターを使用するには、派生クラスの OnEditToolbarMenuImage をオーバーライドします。

CMFCToolBarsCustomizeDialog::OnInitDialog

プロパティ シートの初期化を拡張するためにオーバーライドします。

virtual BOOL OnInitDialog();

戻り値

CPropertySheet::OnInitDialog メソッドを呼び出した結果。

解説

このメソッドは、Close ボタンを表示し、ダイアログ ボックスが現在の画面サイズに合っていることを確認し、Help ボタンをダイアログ ボックスの左下隅に移動することで、基底クラスの実装である CPropertySheet::OnInitDialog を拡張します。

CMFCToolBarsCustomizeDialog::OnInitToolsPage

Tools ページが初期化されようとしていることを示す通知をフレームワークから処理します。

virtual void OnInitToolsPage();

解説

既定の実装では、何も行われません。 この通知を処理するには、派生クラスでこのメソッドをオーバーライドします。

CMFCToolBarsCustomizeDialog::P ostNcDestroy

ウィンドウが破棄された後、フレームワークによって呼び出されます。

virtual void PostNcDestroy();

解説

このメソッドは、アプリケーションを前のモードに復元することで、基底クラスの実装 ( CPropertySheet::PostNcDestroy) を拡張します。

CMFCToolBarsCustomizeDialog::Create メソッドは、ユーザーをカスタマイズ タスクに制限する特別なモードでアプリケーションを配置します。

CMFCToolBarsCustomizeDialog::RemoveButton

指定したコマンド ID を持つボタンを、指定したカテゴリまたはすべてのカテゴリから削除します。

int RemoveButton(
    UINT uiCategoryId,
    UINT uiCmdId);

int RemoveButton(
    LPCTSTR lpszCategory,
    UINT uiCmdId);

パラメーター

uiCategoryId
[in]ボタンを削除するカテゴリ ID を指定します。

uiCmdId
[in]ボタンのコマンド ID を指定します。

lpszCategory
[in]ボタンを削除するカテゴリの名前を指定します。

戻り値

削除されたボタンの 0 から始まるインデックス。指定したコマンド ID が指定されたカテゴリに見つからなかった場合は -1。 uiCategoryId が -1 の場合、戻り値は 0 になります。

解説

すべてのカテゴリからボタンを削除するには、このメソッドの最初のオーバーロードを呼び出し、 uiCategoryId -1 に設定します。

CMFCToolBarsCustomizeDialog::RenameCategory

Commands ページのカテゴリのリスト ボックスでカテゴリの名前を変更します。

BOOL RenameCategory(
    LPCTSTR lpszCategoryOld,
    LPCTSTR lpszCategoryNew);

パラメーター

lpszCategoryOld
[in]変更するカテゴリ名。

lpszCategoryNew
[in]新しいカテゴリ名。

戻り値

メソッドが成功した場合は TRUE。それ以外の場合は FALSE。

解説

カテゴリ名は一意である必要があります。

CMFCToolBarsCustomizeDialog::ReplaceButton

Commands ページのコマンドのリスト ボックスのツール バー ボタンを置き換えます。

void ReplaceButton(
    UINT uiCmd,
    const CMFCToolBarButton& button);

パラメーター

uiCmd
[in]置き換えるボタンのコマンドを指定します。

ボタン
[in]古いボタンを置き換えるツール バー ボタン オブジェクトへの const 参照。

解説

CMFCToolBarsCustomizeDialog::AddMenu, CMFCToolBarsCustomizeDialog::AddMenuCommands, または CMFCToolBarsCustomizeDialog::AddToolBar Commands ページにコマンドを追加します。このコマンドは、CMFCToolBarButton Class オブジェクト (または、AddMenuCommands によって追加されたサブメニューを含むメニュー項目の CMFCToolBarMenuButton クラス オブジェクト) の形式です。 フレームワークでは、これら 3 つのメソッドも呼び出して、コマンドを自動的に追加します。 代わりにコマンドを派生型で表す場合は、 ReplaceButton 呼び出し、派生型のボタンを渡します。

次の例では、CMFCToolBarsCustomizeDialog クラスで ReplaceButton メソッドを使用する方法を示します。 このコード スニペットは、Visual Studio デモ サンプルの一部です。

// CMFCToolBarsCustomizeDialog* pDlgCust
     // CMFCToolBarComboBoxButton comboButtonConfig
     pDlgCust->ReplaceButton(ID_DUMMY_SELECT_ACTIVE_CONFIGURATION, comboButtonConfig);

CMFCToolBarsCustomizeDialog::SetUserCategory

Commands ページのカテゴリの一覧で、どのカテゴリがユーザー カテゴリであるかを指定します。 この関数は、 CMFCToolBarsCustomizeDialog::Create を呼び出す前に呼び出す必要があります。

BOOL SetUserCategory(LPCTSTR lpszCategory);

パラメーター

lpszCategory
[in]カテゴリの名前。

戻り値

メソッドが成功した場合は TRUE。それ以外の場合は FALSE。

解説

ユーザー カテゴリの設定は、現在、フレームワークでは使用されていません。

関連項目

階層図
クラス
CPropertySheet クラス