Поделиться через


Класс 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 ostNcDenost Вызывается платформой после уничтожения окна. (Переопределяет 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 класса. Этот фрагмент кода является частью примера Ползунка.

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.

Замечания

В вызове AddMenuCommandsbPopup имеет значение 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 классе. Этот фрагмент кода входит в состав примера Word Pad.

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 .

CMFCKeyMapDialog Классы CMFCToolBarsKeyboardPropertyPage используют этот метод для классификации сопоставлений клавиатуры.

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. Этот метод сравнивает lpszItemName с элементом данных CMFCToolBarButton::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] Указатель на родительское окно.

bitmap
[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 ostNcDenost

Вызывается платформой после уничтожения окна.

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 добавляет команду на страницу команд, эта команда находится в виде объекта класса 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