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