Основные сведения о панелях инструментов

В этой статье описывается базовая реализация MFC, которая позволяет добавлять панель инструментов по умолчанию в приложение, выбрав параметр в мастере приложений. В книге рассматриваются такие темы:

Параметр панели инструментов мастера приложений

Чтобы получить одну панель инструментов с кнопками по умолчанию, выберите параметр панели инструментов "Стандартный" на странице с помеченными функциями пользовательского интерфейса. Это добавляет код в приложение, которое:

  • Создает объект панели инструментов.

  • Управляет панелью инструментов, включая ее возможность закрепить или с плавать.

Панель инструментов в коде

Панель инструментов — это объект CToolBar , объявленный как член данных класса приложения CMainFrame . Другими словами, объект панели инструментов внедрен в объект окна главного кадра. Это означает, что MFC создает панель инструментов при создании окна фрейма и уничтожает панель инструментов при уничтожении окна кадра. В следующем объявлении частичного класса для приложения с несколькими интерфейсами документов (MDI) отображаются элементы данных для встроенной панели инструментов и встроенной строки состояния. В нем также показана переопределение OnCreate функции-члена.

class CMainFrame : public CMDIFrameWnd
{
// Implementation
protected:  // control bar embedded members
   CStatusBar  m_wndStatusBar;
   CToolBar    m_wndToolBar;

// Generated message map functions
protected:
   afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
   DECLARE_MESSAGE_MAP()

Создание панели инструментов происходит в CMainFrame::OnCreate. MFC вызывает OnCreate после создания окна для кадра, но до того, как он станет видимым. По умолчанию OnCreate мастер приложений создает следующие задачи панели инструментов:

  1. CToolBar Вызывает функцию create-члена объекта, чтобы создать базовый объект CToolBarCtrl.

  2. Вызывает LoadToolBar для загрузки сведений о ресурсе панели инструментов.

  3. Вызывает функции для включения закрепления, плавающей и инструментальной подсказки. Дополнительные сведения об этих вызовах см. в статье "Закрепление и плавающая панель инструментов".

Примечание.

Пример DOCKTOOL для MFC содержит иллюстрации старых и новых панелей инструментов MFC. Панели инструментов, которые используются, COldToolbar требуют вызовов на шаге 2 ( LoadBitmap а не LoadToolBar) и SetButtons. Для новых панелей инструментов требуются вызовы LoadToolBar.

Вызовы с плавающей и плавающей запятой и подсказками являются необязательными. Эти строки можно удалить, OnCreate если вы предпочитаете. Результатом является панель инструментов, которая остается фиксированной, не в состоянии плавать или перезапуковать и не отображать подсказки инструментов.

Изменение ресурса панели инструментов

Панель инструментов по умолчанию, получаемая с помощью мастера приложений, основана на RT_TOOLBAR пользовательском ресурсе, представленном в MFC версии 4.0. Этот ресурс можно изменить с помощью редактора панели инструментов. Редактор позволяет легко добавлять, удалять и изменять порядок кнопок. Он содержит графический редактор для кнопок, которые очень похожи на общий графический редактор в Visual C++. Если вы редактировали панели инструментов в предыдущих версиях Visual C++, вы найдете задачу гораздо проще.

Чтобы подключить кнопку панели инструментов к команде, присвойте кнопке идентификатор команды, например ID_MYCOMMAND. Укажите идентификатор команды на странице свойств кнопки в редакторе панели инструментов. Затем создайте функцию обработчика для команды (дополнительные сведения см. в разделе "Сопоставление сообщений с функциями ").

Новые функции члена CToolBar работают с ресурсом RT_TOOLBAR . LoadToolBar теперь занимает место LoadBitmap , чтобы загрузить растровое изображение изображений кнопки панели инструментов и SetButtons , чтобы задать стили кнопки и подключить кнопки с растровыми изображениями.

Дополнительные сведения об использовании редактора панели инструментов см . в редакторе инструментов.

Несколько панелей инструментов

Мастер приложений предоставляет одну панель инструментов по умолчанию. Если в приложении требуется несколько панелей инструментов, вы можете моделировать код для дополнительных панелей инструментов на основе созданного мастером кода для панели инструментов по умолчанию.

Если вы хотите отобразить панель инструментов в результате команды, вам потребуется:

  • Создайте ресурс панели инструментов с редактором панели инструментов и загрузите его OnCreate с помощью функции-члена LoadToolbar .

  • Внедрение нового объекта CToolBar в класс главного окна фрейма.

  • Выполните соответствующие вызовы функции для OnCreate док-станции или с плавающей панели инструментов, задайте его стили и т. д.

Что вы хотите узнать больше о

См. также

Реализация панели инструментов MFC