Инструменты, определяемые пользователем
MFC поддерживает пользовательские средства. Настраиваемое средство специальная команда, выполняемая поле, определенная пользователем программы. Можно использовать процесс настройки управления пользовательские средства. Однако нельзя использовать этот процесс приложения, если объект не является производным от класса Класс CWinAppEx. Дополнительные сведения о настройке см. в разделе Настройка для MFC.
Если включено поддержку пользовательских средств, откроется диалоговое окно настройки автоматически включает вкладку Сервис. На следующем рисунке показана страница Сервис.
Вкладка диалогового окна настройки средств
Включение поддержки пользовательских средств
Чтобы включить пользовательские средства в приложении, вызовите метод CWinAppEx::EnableUserTools. Однако необходимо сначала определить несколько констант в файлах ресурсов приложения использовать в качестве параметров для этого вызова.
В редакторе ресурсов создайте фиктивная команду, что используется соответствующий идентификатор команды. В следующем примере мы используем ID_TOOLS_ENTRY как идентификатор команды. Это идентификатор команды отмечает размещение в одном или нескольких меню, платформа вводит пользовательские средства.
Необходимо отложить некоторые последовательных идентификаторов в таблице строк для представления пользовательских средств. Число строк, заданные в сторону равно максимальному числу средств пользователя, которые пользователи могут указывать. В следующем примере эти называются ID_USER_TOOL1 через ID_USER_TOOL10.
Можно предложения предложения пользователям, чтобы помочь для выделения каталоги и аргументы для внешних программ, будут вызваны в качестве средства. Для этого создайте 2 всплывающих меню в редакторе ресурсов. В следующем примере эти называются IDR_MENU_ARGS и IDR_MENU_DIRS. Для каждой команды в этих меню укажите строку в таблице строк приложения. Идентификатор ресурса строки должно быть равно команды удостоверению.
Также можно создать производный класс от класса Класс CUserTool, чтобы заменить реализацию по умолчанию. Чтобы сделать это, передает сведения о среде выполнения для производного класса в качестве четвертый параметр в CWinAppEx::EnableUserTools вместо RUNTIME_CLASS (Класс CUserTool).
После определения соответствующие константы, вызов CWinAppEx::EnableUserTools для включения пользовательских средств.
Вызов следующего приема показано, как использовать эти константы:
EnableUserTools(ID_TOOLS_ENTRY, ID_USER_TOOL1, ID_USER_TOOL10, RUNTIME_CLASS(CUserTool), IDR_MENU_ARGS, IDR_MENU_DIRS);
В этом примере, вкладка средств будет включена в диалоговом окне Настройка. Платформа заменяет одну из команд, соответствующее идентификатору ID_TOOLS_ENTRY команды в любом меню с набором определенным в настоящий момент средств пользователя при открытии пользователем в меню. Идентификатор ID_USER_TOOL1 команды по ID_USER_TOOL10 зарезервировано для использования для настраиваемых инструментов. Класс Класс CUserTool обрабатывает вызовы к средствам пользователя. Вкладка Настройка предоставляет средства диалогового окна кнопки справа от поля ввода аргумента и каталога для доступа к меню IDR_MENU_ARGS и IDR_MENU_DIRS., когда пользователь выбирает команду из одного из этих меню платформа добавляет к соответствующему текстовое поле строки, содержащей идентификатор ресурса, равное команды удостоверению.
Включая стандартные средства
Если требуется предопределить некоторые средства при запуске приложения, необходимо переопределить метод CFrameWnd::LoadFrame в главном окне приложения. В этом методе необходимо выполнить следующие шаги.
Добавление новых инструментов в LoadFrame
Получает указатель на объект Класс CUserToolsManager с помощью метода CWinAppEx::GetUserToolsManager.
Для каждого средства необходимо создать, вызов CUserToolsManager::CreateNewTool. Этот метод возвращает указатель на объект Класс CUserTool и добавляет вновь созданный объект средства пользователя во внутреннюю коллекцию средств. Если указанное сведений о среде выполнения для производного класса Класс CUserTool в качестве четвертый параметр CWinAppEx::EnableUserTools, CUserToolsManager::CreateNewTool создает и возвращает экземпляр этого класса вместо.
Для каждого инструмента установите его текстовой подписи установив CUserTool::m_strLabel и задайте его команды путем вызова CUserTool::SetCommand. Реализация по умолчанию Класс CUserTool автоматически извлекает доступные Значки из программы, которая определена в вызове SetCommand.