共用方式為


CMFCToolBarsCustomizeDialog 類別

無模式索引標籤對話框 ( CPropertySheet 類別)可讓使用者自定義應用程式中的工具列、功能表、鍵盤快捷方式、使用者定義工具和可視化樣式。 使用者通常會選取 [ 工具 ] 功能表中的 [ 自訂 ],以存取這個對話方塊。

[自定義] 對話框有六個索引標籤:命令工具列、工具鍵盤功能表選項

語法

class CMFCToolBarsCustomizeDialog : public CPropertySheet

成員

公用建構函式

名稱 描述
CMFCToolBarsCustomizeDialog::CMFCToolBarsCustomizeDialog 建構 CMFCToolBarsCustomizeDialog 物件。
CMFCToolBarsCustomizeDialog::~CMFCToolBarsCustomizeDialog 解構函式。

公用方法

名稱 描述
CMFCToolBarsCustomizeDialog::AddButton 在 [命令] 頁面上的命令清單中插入工具列按鈕
CMFCToolBarsCustomizeDialog::AddMenu 從資源載入功能表,並呼叫 CMFCToolBarsCustomizeDialog::AddMenuCommands,將該功能表新增至 [命令] 頁面上的命令清單。
CMFCToolBarsCustomizeDialog::AddMenuCommands 從資源載入功能表,並呼叫 CMFCToolBarsCustomizeDialog::AddMenuCommands,將該功能表新增至 [命令] 頁面上的命令清單。
CMFCToolBarsCustomizeDialog::AddToolBar 從資源載入工具列。 然後,針對功能表中的每個命令,呼叫CMFCToolBarsCustomizeDialog::AddButton方法,在指定類別下的 [命令] 頁面上的命令清單中插入按鈕。
CMFCToolBarsCustomizeDialog::Create 顯示 [ 自定義 ] 對話框。
CMFCToolBarsCustomizeDialog::EnableTools 保留供未來使用。
CMFCToolBarsCustomizeDialog::EnableUserDefinedToolbars 使用 [ 自定義 ] 對話框啟用或停用建立新的工具列。
CMFCToolBarsCustomizeDialog::FillAllCommandsList 在提供的 CListBox 物件中填入 [所有命令] 類別中的命令。
CMFCToolBarsCustomizeDialog::FillCategoriesComboBox 在提供的 CComboBox 物件中 填入 [自定義 ] 對話框中每個命令類別的名稱。
CMFCToolBarsCustomizeDialog::FillCategoriesListBox 在提供的 CListBox 物件中 填入 [自定義 ] 對話框中每個命令類別的名稱。
CMFCToolBarsCustomizeDialog::GetCommandName 擷取與指定命令標識符相關聯的名稱。
CMFCToolBarsCustomizeDialog::GetCountInCategory 擷取所提供清單中具有指定文字標籤的項目數。
CMFCToolBarsCustomizeDialog::GetFlags 擷取會影響對話框行為的旗標集。
CMFCToolBarsCustomizeDialog::GetThisClass 由架構用來取得與這個類別類型相關聯之 CRuntimeClass 物件的指標。
CMFCToolBarsCustomizeDialog::OnEditToolbarMenuImage 啟動影像編輯器,讓使用者可以自定義工具列按鈕或功能表項圖示。
CMFCToolBarsCustomizeDialog::OnInitDialog 覆寫以增強屬性表初始化。 (覆寫 CPropertySheet::OnInitDialog.)
CMFCToolBarsCustomizeDialog::P ostNcDestroy 在窗口終結之後,由架構呼叫。 (覆寫 CPropertySheet::PostNcDestroy。)
CMFCToolBarsCustomizeDialog::RemoveButton 從指定的類別或所有類別中移除具有指定命令標識碼的按鈕。
CMFCToolBarsCustomizeDialog::RenameCategory 重新命名 [命令] 索引標籤上 類別清單框中的 類別。
CMFCToolBarsCustomizeDialog::ReplaceButton 以新的工具列按鈕物件取代 [命令] 索引標籤上命令清單中的按鈕。
CMFCToolBarsCustomizeDialog::SetUserCategory 將類別新增至將在 [命令] 索引標籤上顯示的類別清單。

受保護的方法

名稱 描述
CMFCToolBarsCustomizeDialog::CheckToolsValidity 由架構呼叫,以判斷使用者定義工具清單是否有效。
CMFCToolBarsCustomizeDialog::OnAfterChangeTool 當使用者定義工具的屬性變更時,由架構呼叫。
CMFCToolBarsCustomizeDialog::OnAssignKey 判斷是否可以將指定的鍵盤快捷方式指派給動作。
CMFCToolBarsCustomizeDialog::OnBeforeChangeTool 判斷使用者定義工具是否可以變更。
CMFCToolBarsCustomizeDialog::OnInitToolsPage 當使用者選擇 [工具 ] 索引標籤時,由架構呼叫。

備註

若要顯示 [ 自定義 ] 對話框,請建立 CMFCToolBarsCustomizeDialog 物件並呼叫 CMFCToolBarsCustomizeDialog::Create 方法。

當 [ 自定義 ] 對話框作用中時,應用程式會以特殊模式運作,以限制使用者自定義工作。

範例

下例示範如何在 CMFCToolBarsCustomizeDialog 類別中使用各種方法。 此範例示範如何在 [命令] 頁面上的命令清單框中取代工具列按鈕、使用 [自定義] 對話方塊來建立新的工具列,以及顯示 [自定義] 對話方塊。 此代碼段是 IE 示範範例一部分。

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

繼承階層架構

CObject

CCmdTarget

CWnd

CPropertySheet

CMFCToolBarsCustomizeDialog

需求

標頭: afxToolBarsCustomizeDialog.h

CMFCToolBarsCustomizeDialog::AddButton

在 [命令] 頁面上的命令清單中插入工具列按鈕。

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

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

參數

uiCategoryId
[in]指定要在其中插入按鈕的類別識別碼。

按鈕
[in]指定要插入的按鈕。

iInsertBefore
[in]指定插入按鈕之前工具列按鈕的以零起始的索引。

lpszCategory
[in]指定要插入按鈕的類別字串。

備註

方法 AddButton 會忽略具有標準命令標識符的按鈕(例如ID_FILE_MRU_FILE1)、不允許的命令(請參閱 CMFCToolBar::IsCommandPermitted) 和虛擬按鈕。

這個方法會使用按鈕的運行時間類別,建立與相同類型 button 的新物件(通常是 CMFCToolBarButton 類別)。 然後它會呼叫 CMFCToolBarButton::CopyFrom 來複製按鈕的數據成員,並將複本插入指定的類別。

插入新按鈕時,它會收到 OnAddToCustomizePage 通知。

如果 iInsertBefore 為 -1,按鈕會附加至類別清單,否則會在具有指定索引的專案之前插入。

範例

下列範例示範如何使用 AddButton 類別的 CMFCToolBarsCustomizeDialog 方法。 此代碼段是 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,將該功能表新增至 [命令] 頁面上的命令清單。

BOOL AddMenu(UINT uiMenuResId);

參數

uiMenuResId
[in]指定要載入之功能表的資源識別碼。

傳回值

如果已成功新增功能表,則為TRUE;否則為 FALSE。

備註

在 對的呼叫 AddMenuCommands中, bPopup 為 FALSE。 因此,該方法不會將包含子功能表的功能表項新增至命令清單。 這個方法會將子功能表中的功能表項新增至命令清單。

CMFCToolBarsCustomizeDialog::AddMenuCommands

將專案新增至 [命令] 頁面中的命令清單,以代表指定功能表中的所有專案。

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

參數

pMenu
[in]要加入之 CMenu 物件的指標。

bPopup
[in]指定是否要將快顯功能表項插入命令清單。

lpszCategory
[in]要插入功能表的類別名稱。

lpszMenuPath
[in]當命令顯示在 [所有類別] 列表中時,新增至名稱的前置詞。

備註

方法AddMenuCommands會迴圈查看 pMenu 的所有功能表項。 針對不包含子功能表的每個功能表項,這個方法會建立CMFCToolBarButton 類別物件,並呼叫CMFCToolBarsCustomizeDialog::AddButton方法,將功能表項新增為 [命令] 頁面上命令清單的工具欄按鈕。 在此程式中會忽略分隔符。

如果 bPopup 為 TRUE,則針對包含子功能表的每個功能表項,這個方法會 建立 CMFCToolBarMenuButton 類別 物件,並藉由呼叫 AddButton將它插入命令清單中。 否則,包含子功能表的功能表項不會顯示在命令清單中。 在任一情況下,當遇到具有子功能表的功能表項時 AddMenuCommands ,它會以遞歸方式呼叫本身,將指標傳遞至子功能表做為 pMenu 參數,並將子功能表的捲標附加至 lpszMenuPath

CMFCToolBarsCustomizeDialog::AddToolBar

從資源載入工具列。 然後,針對功能表中的每個命令,呼叫CMFCToolBarsCustomizeDialog::AddButton方法,在指定類別下的 [命令] 頁面上的命令清單中插入按鈕。

BOOL AddToolBar(
    UINT uiCategoryId,
    UINT uiToolbarResId);

BOOL AddToolBar(
    LPCTSTR lpszCategory,
    UINT uiToolbarResId);

參數

uiCategoryId
[in]指定要加入工具列之類別的資源識別碼。

uiToolbarResId
[in]指定工具列的資源識別碼,其命令會插入命令清單中。

lpszCategory
[in]指定要加入工具列的類別名稱。

傳回值

如果方法成功,則為TRUE;否則為 FALSE。

範例

下列範例示範如何在 類別中使用 AddToolBar CMFCToolBarsCustomizeDialog 方法。 此程式碼片段是 WordPad 範例的一部分。

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傳回之使用者定義工具的物件有效性。

CheckToolsValidity如果您想要在使用者關閉對話方塊之前驗證使用者工具,請覆寫衍生自 CMFCToolBarsCustomizeDialog 的類別中的方法。 如果使用者按兩下對話框右上角的 [關閉] 按鈕或標示為對話框右下角的 [關閉] 按鈕,則這個方法會傳回 FALSE,則對話框會顯示 [工具] 索引卷標,而不是關閉。 如果使用者按兩下索引標籤以離開 [工具 ] 索引標籤時,這個方法會傳回 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]布爾值,指定是否要將功能表命令從所有功能表新增至 [命令] 頁面上的命令清單。 如果此參數為TRUE,則會新增功能表命令。 否則,不會新增功能表命令。

uiFlags
[in]影響對話框行為的旗標組合。 此參數可以是下列其中一或多個值:

  • 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 方法,將更多頁面新增至對話方塊。 如需將更多頁面新增至 [自定義 ] 對話框的範例,請參閱 CustomPages 範例。

如需您可以傳入 uiFlags 參數之值的詳細資訊,請參閱 CMFCToolBarsCustomizeDialog::GetFlags

範例

下列範例示範如何建構 類別的物件 CMFCToolBarsCustomizeDialog 。 此代碼段是自定義頁面範例一部分。

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

顯示 [ 自定義 ] 對話框。

virtual BOOL Create();

傳回值

如果成功建立自定義屬性表,則為TRUE;否則為 FALSE。

備註

Create只有在您完全初始化 類別之後,才呼叫 方法。

CMFCToolBarsCustomizeDialog::EnableUserDefinedToolbars

使用 [ 自定義 ] 對話框啟用或停用建立新的工具列。

void EnableUserDefinedToolbars(BOOL bEnable=TRUE);

參數

bEnable
[in]TRUE 可啟用使用者定義的工具列;FALSE 表示停用工具列。

備註

如果 bEnable 為 TRUE,[工具列] 頁面上會顯示 [新增]、[重新命名] 和 [刪除] 按鈕。

根據預設,或如果 bEnable 為 FALSE,則不會顯示這些按鈕,而且使用者無法定義新的工具列。

CMFCToolBarsCustomizeDialog::FillAllCommandsList

在提供的 CListBox 物件中填入 [所有命令] 類別中的命令。

virtual void FillAllCommandsList(CListBox& wndListOfCommands) const;

參數

wndListOfCommands
[out]要填入之 CListBox 對象的參考。

備註

[ 所有命令] 類別包含所有類別的命令。 CMFCToolBarsCustomizeDialog::AddButton 方法會將與所提供按鈕相關聯的命令新增至您 [所有命令] 類別。

這個方法會先清除所提供CListBox對象的內容,再將其填入 [所有命令] 類別中的命令。

類別 CMFCMousePropertyPage 會使用這個方法來填入按兩下事件清單框。

CMFCToolBarsCustomizeDialog::FillCategoriesComboBox

在提供的 CComboBox 物件中 填入 [自定義 ] 對話框中每個命令類別的名稱。

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

參數

wndCategory
[out]要填入之 CComboBox 對象的參考。

bAddEmpty
[in]布爾值,指定是否要將類別新增至沒有命令的下拉式方塊。 如果此參數為TRUE,則會將空白類別新增至下拉式方塊。 否則,不會新增空的類別。

備註

這個方法就像 CMFCToolBarsCustomizeDialog::FillCategoriesListBox 方法,不同之處在於這個方法適用於 CComboBox 物件。

這個方法不會在填入物件之前清除物件的內容 CComboBox 。 它保證 [ 所有命令 ] 類別是下拉式方塊中的最後一個專案。

您可以使用 CMFCToolBarsCustomizeDialog::AddButton 方法新增命令類別。 您可以使用 CMFCToolBarsCustomizeDialog::RenameCategory 方法來變更現有類別的名稱。

CMFCToolBarsKeyboardPropertyPageCMFCKeyMapDialog 類別會使用此方法來分類鍵盤對應。

CMFCToolBarsCustomizeDialog::FillCategoriesListBox

在提供的 CListBox 物件中 填入 [自定義 ] 對話框中每個命令類別的名稱。

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

擷取與指定命令標識符相關聯的名稱。

LPCTSTR GetCommandName(UINT uiCmd) const;

參數

uiCmd
[in]要擷取之命令的標識碼。

傳回值

與指定命令標識碼相關聯的名稱,如果命令不存在,則為 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 參數值。 傳回值可以是下列其中一或多個值:

名稱 描述
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 從自訂對話框移除 [ 工具] 頁面。 如果您的應用程式使用 類別, CUserToolsManager 則此旗標有效。
AFX_CUSTOMIZE_MENUAMPERS 允許按鈕標題包含和 ( &) 字元。
AFX_CUSTOMIZE_NO_LARGE_ICONS 從自訂對話框中移除 [ 大型圖示 ] 選項。

如需WS_EX_CONTEXTHELP可視化樣式的詳細資訊,請參閱 擴充窗口樣式

CMFCToolBarsCustomizeDialog::OnAfterChangeTool

在使用者工具發生之後立即回應變更。

virtual void OnAfterChangeTool(CUserTool* pSelTool);

參數

pSelTool
[in, out]已變更之使用者工具物件的指標。

備註

當使用者變更使用者定義工具的屬性時,架構會呼叫此方法。 預設實作不做任何動作。 在衍生自 CMFCToolBarsCustomizeDialog 的類別中覆寫這個方法,以在使用者工具變更之後執行處理。

CMFCToolBarsCustomizeDialog::OnAssignKey

在使用者定義鍵盤快捷方式時驗證鍵盤快捷方式。

virtual BOOL OnAssignKey(ACCEL* pAccel);

參數

pAccel
[in, out]建議之鍵盤指派的指標,以 ACCEL 結構表示

傳回值

如果可以指派金鑰,則為 TRUE;如果無法指派密鑰,則為 FALSE。 默認實作一律會傳回 TRUE。

備註

覆寫衍生類別中的這個方法,以在使用者指派新的鍵盤快捷方式時執行額外的處理,或驗證使用者定義鍵盤快捷方式時的鍵盤快捷方式。 若要防止指派快捷方式,請傳回 FALSE。 您也應該顯示消息框,或通知用戶鍵盤快捷方式遭拒的原因。

CMFCToolBarsCustomizeDialog::OnBeforeChangeTool

當使用者即將套用變更時,執行使用者工具變更時的自定義處理。

virtual void OnBeforeChangeTool(CUserTool* pSelTool);

參數

pSelTool
[in, out]即將取代之使用者工具物件的指標。

備註

當使用者定義工具的屬性即將變更時,架構會呼叫這個方法。 預設實作不做任何動作。 OnBeforeChangeTool如果您想要在變更使用者工具之前執行處理,請在衍生自 CMFCToolBarsCustomizeDialog 的類別中覆寫 方法,例如釋放 pSelTool 所使用的資源

CMFCToolBarsCustomizeDialog::OnEditToolbarMenuImage

啟動影像編輯器,讓使用者可以自定義工具列按鈕或功能表項圖示。

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

參數

pWndParent
[in]父視窗的指標。

點陣圖
[in]要編輯之位圖對象的參考。

nBitsPerPixel
[in]位圖色彩解析度,以像素為單位。

傳回值

如果認可變更,則為TRUE;否則為 FALSE。 默認實作會顯示對話方塊,如果使用者按兩下 [確定],則會傳回 TRUE;如果使用者按兩下 [取消] 或 [關閉] 按鈕,則會傳回 FALSE。

備註

當使用者執行映像編輯器時,架構會呼叫這個方法。 默認實作會顯示 [CMFCImageEditorDialog 類別 ] 對話方塊。 在衍生類別中覆寫 OnEditToolbarMenuImage 以使用自定義映像編輯器。

CMFCToolBarsCustomizeDialog::OnInitDialog

覆寫以增強屬性表初始化。

virtual BOOL OnInitDialog();

傳回值

呼叫 CPropertySheet::OnInitDialog 方法的結果。

備註

這個方法會藉由顯示 [關閉] 按鈕、確定對話方塊符合目前的螢幕大小,以及將 [說明] 按鈕移至對話方塊左下角,來擴充基類實作 CPropertySheet::OnInitDialog

CMFCToolBarsCustomizeDialog::OnInitToolsPage

處理即將初始化 [工具] 頁面架構的通知。

virtual void OnInitToolsPage();

備註

預設實作不做任何動作。 覆寫衍生類別中的這個方法,以處理此通知。

CMFCToolBarsCustomizeDialog::P ostNcDestroy

在窗口終結之後,由架構呼叫。

virtual void PostNcDestroy();

備註

這個方法會將應用程式還原至上一個模式,藉此擴充基類實 CPropertySheet::PostNcDestroy作。

CMFCToolBarsCustomizeDialog::Create 方法會將應用程式置於特殊模式,以限制使用者自定義工作。

CMFCToolBarsCustomizeDialog::RemoveButton

從指定的類別或所有類別中移除具有指定命令標識碼的按鈕。

int RemoveButton(
    UINT uiCategoryId,
    UINT uiCmdId);

int RemoveButton(
    LPCTSTR lpszCategory,
    UINT uiCmdId);

參數

uiCategoryId
[in]指定要從中移除按鈕的類別識別碼。

uiCmdId
[in]指定按鈕的命令識別碼。

lpszCategory
[in]指定要從中移除按鈕的類別名稱。

傳回值

已移除按鈕的以零起始的索引,如果在指定的類別中找不到指定的命令標識元,則為 -1。 如果 uiCategoryId 為 -1,則傳回值為 0。

備註

若要從所有類別中移除按鈕,請呼叫這個方法的第一個多載,並將 uiCategoryId 設定為 -1。

CMFCToolBarsCustomizeDialog::RenameCategory

在 [命令] 頁面上的類別清單框中重新命名類別

BOOL RenameCategory(
    LPCTSTR lpszCategoryOld,
    LPCTSTR lpszCategoryNew);

參數

lpszCategoryOld
[in]要變更的類別名稱。

lpszCategoryNew
[in]新的類別名稱。

傳回值

如果方法成功,則為TRUE;否則為 FALSE。

備註

類別名稱必須是唯一的。

CMFCToolBarsCustomizeDialog::ReplaceButton

取代 [命令] 頁面上命令清單框中的工具列按鈕。

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

參數

uiCmd
[in]指定要取代之按鈕的命令。

按鈕
[in] const 取代舊按鈕之工具列按鈕對象的參考。

備註

當 CMFCToolBarsCustomizeDialog::AddMenu、CMFCToolBarsCustomizeDialog::AddMenuCommands 或 CMFCToolBarsCustomizeDialog::AddToolBar 將命令新增至 Commands 頁面時,該命令的格式為 CMFCToolBarButton 類別物件(或 CMFCToolBarMenuButton 類別物件,其中包含 所新增子菜單的AddMenuCommands功能表項)。 架構也會呼叫這三種方法來自動新增命令。 如果您想要改為以衍生類型表示命令,請呼叫 ReplaceButton 並傳入衍生類型的按鈕。

範例

下列範例示範如何在 類別中使用 ReplaceButton CMFCToolBarsCustomizeDialog 方法。 此代碼段是Visual Studio示範範例一部分。

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

CMFCToolBarsCustomizeDialog::SetUserCategory

指定 [命令] 頁面上類別清單中的哪一個類別是用戶類別。 您必須先呼叫此函式,才能呼叫 CMFCToolBarsCustomizeDialog::Create

BOOL SetUserCategory(LPCTSTR lpszCategory);

參數

lpszCategory
[in]類別的名稱。

傳回值

如果方法成功,則為TRUE;否則為 FALSE。

備註

架構目前未使用使用者類別設定。

另請參閱

階層架構圖表
類別
CPropertySheet 類別