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


Класс CMFCDropDownToolbarButton

Замечание

Библиотека классов Microsoft Foundation (MFC) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.

Тип кнопки панели инструментов, который при нажатии ведет себя как обычная кнопка. Однако он открывает раскрывающийся список панели инструментов ( класс CMFCDropDownToolBar, если пользователь нажимает и удерживает кнопку панели инструментов вниз.

Синтаксис

class CMFCDropDownToolbarButton : public CMFCToolBarButton

Участники

Открытые конструкторы

Имя Описание
CMFCDropDownToolbarButton::CMFCDropDownToolbarButton Формирует объект CMFCDropDownToolbarButton.
CMFCDropDownToolbarButton::~CMFCDropDownToolbarButton Деструктор.

Открытые методы

Имя Описание
CMFCDropDownToolbarButton::CopyFrom Копирует свойства другой кнопки панели инструментов на текущую кнопку. (Переопределения CMFCToolBarButton::CopyFrom.)
CMFCDropDownToolbarButton::CreateObject Используется платформой для создания динамического экземпляра этого типа класса.
CMFCDropDownToolbarButton::D ropDownToolbar Открывает раскрывающийся список инструментов.
CMFCDropDownToolbarButton::ExportToMenuButton Копирует текст из кнопки панели инструментов в меню. (Переопределения CMFCToolBarButton::ExportToMenuButton.)
CMFCDropDownToolbarButton::GetDropDownToolBar Извлекает раскрывающуюся панель инструментов, связанную с кнопкой.
CMFCDropDownToolbarButton::GetThisClass Используется платформой для получения указателя на объект CRuntimeClass , связанный с этим типом класса.
CMFCDropDownToolbarButton::IsDropDown Определяет, открыта ли в настоящее время раскрывающаяся панель инструментов.
CMFCDropDownToolbarButton::IsExtrasize Определяет, может ли кнопка отображаться с расширенной границей. (Переопределения CMFCToolBarButton::IsExtrasize.)
CMFCDropDownToolbarButton::OnCalculateSize Вызывается платформой для вычисления размера кнопки для указанного контекста устройства и состояния закрепления. (Переопределения CMFCToolBarButton::OnCalculateSize.)
CMFCDropDownToolbarButton::OnCancelMode Вызывается платформой для обработки сообщения WM_CANCELMODE . (Переопределяет CMCToolBarButton::OnCancelMode.)
CMFCDropDownToolbarButton::OnChangeParentWnd Вызывается платформой при вставке кнопки в новую панель инструментов. (Переопределения CMFCToolBarButton::OnChangeParentWnd.)
CMFCDropDownToolbarButton::OnClick Вызывается платформой, когда пользователь нажимает кнопку мыши. (Переопределения CMFCToolBarButton::OnClick.)
CMFCDropDownToolbarButton::OnClickUp Вызывается платформой, когда пользователь освобождает кнопку мыши. (Переопределения CMFCToolBarButton::OnClickUp.)
CMFCDropDownToolbarButton::OnContextHelp Вызывается платформой, когда родительская панель инструментов обрабатывает сообщение WM_HELPHITTEST. (Переопределения CMFCToolBarButton::OnContextHelp.)
CMFCDropDownToolbarButton::OnCustomizeMenu Изменяет предоставленное меню, когда приложение отображает контекстное меню на родительской панели инструментов. (Переопределения CMFCToolBarButton::OnCustomizeMenu.)
CMFCDropDownToolbarButton::OnDraw Вызывается платформой для рисования кнопки с помощью указанных стилей и параметров. (Переопределения CMFCToolBarButton::OnDraw.)
CMFCDropDownToolbarButton::OnDrawOnCustomizeList Вызывается платформой для рисования кнопки в области "Команды " диалогового окна "Настройка ". (Переопределения CMFCToolBarButton::OnDrawOnCustomizeList.)
CMFCDropDownToolbarButton::Serialize Считывает этот объект из архива или записывает его в архив. (Переопределения CMFCToolBarButton::Serialize.)
CMFCDropDownToolbarButton::SetDefaultCommand Задает команду по умолчанию, которую использует платформа, когда пользователь нажимает кнопку.

Элементы данных

Имя Описание
CMFCDropDownToolbarButton::m_uiShowBarDelay Указывает время, которое пользователь должен удерживать кнопку мыши до появления раскрывающейся панели инструментов.

Замечания

Отличается CMFCDropDownToolBarButton от обычной кнопки в том, что она имеет небольшую стрелку в правом нижнем углу кнопки. После нажатия кнопки на раскрывающейся панели инструментов платформа отображает значок на панели инструментов верхнего уровня (кнопка с небольшой стрелкой в правом нижнем углу).

Сведения о реализации раскрывающейся панели инструментов см . в классе CMFCDropDownToolBar.

Объект CMFCDropDownToolBarButton можно экспортировать в объект класса CMFCToolBarMenuButton и отображаться в виде кнопки меню со всплывным меню.

Иерархия наследования

CObject

CMFCToolBarButton

CMFCDropDownToolbarButton

Требования

Заголовок: afxdropdowntoolbar.h

CMFCDropDownToolbarButton::CopyFrom

Копирует свойства другой кнопки панели инструментов на текущую кнопку.

virtual void CopyFrom(const CMFCToolBarButton& src);

Параметры

src
[in] Ссылка на исходную кнопку, из которой следует скопировать.

Замечания

Вызовите этот метод, чтобы скопировать другую кнопку панели инструментов на эту кнопку панели инструментов. src должен иметь тип CMFCDropDownToolbarButton.

CMFCDropDownToolbarButton::CMFCDropDownToolbarButton

Формирует объект CMFCDropDownToolbarButton.

CMFCDropDownToolbarButton();

CMFCDropDownToolbarButton(
    LPCTSTR lpszName,
    CMFCDropDownToolBar* pToolBar);

Параметры

lpszName
[in] Текст кнопки по умолчанию.

pToolBar
[in] Указатель на объект, отображаемый CMFCDropDownToolBar при нажатии кнопки.

Замечания

Вторая перегрузка конструктора копируется в раскрывающийся список первой кнопкой на панели инструментов, указывающей pToolBar .

Как правило, кнопка раскрывающегося списка использует текст из последней используемой кнопки на панели инструментов, указывающей pToolBar . Он использует текст, заданный lpszName, когда кнопка преобразуется в кнопку меню или отображается на вкладке "Команды" диалогового окна "Настройка". Дополнительные сведения о диалоговом окне "Настройка" см. в классе CMFCToolBarsCustomizeDialog.

Пример

В следующем примере показано, как создать объект CMFCDropDownToolbarButton класса. Этот фрагмент кода является частью примера демонстрации Visual Studio.

// Add dropdown resources button
// CMFCToolBarsCustomizeDialog* pDlgCust
// CMFCDropDownToolBar m_wndToolbarResource
pDlgCust->AddButton(_T("Build"), CMFCDropDownToolbarButton(_T("Add Resource"), &m_wndToolbarResource));

Открывает раскрывающийся список инструментов.

BOOL DropDownToolbar(CWnd* pWnd);

Параметры

pWnd
[in] Родительское окно раскрывающегося кадра или NULL для использования родительского окна кнопки раскрывающегося списка.

Возвращаемое значение

Ненулевое значение, если метод выполнен успешно; в противном случае — 0.

Замечания

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

Эти методы создают раскрывающийся список с помощью метода CMFCDropDownFrame::Create . Если родительская панель инструментов закреплена по вертикали, этот метод размещает раскрывающийся список в левой или правой части родительской панели инструментов в зависимости от соответствия. В противном случае этот метод размещает раскрывающийся список панели инструментов под родительской панелью инструментов.

Этот метод завершается ошибкой, если pWnd имеет значение NULL, а кнопка панели инструментов раскрывающегося списка не имеет родительского окна.

CMFCDropDownToolbarButton::ExportToMenuButton

Копирует текст из кнопки панели инструментов в меню.

virtual BOOL ExportToMenuButton(CMFCToolBarMenuButton& menuButton) const;

Параметры

menuButton
[in] Ссылка на целевую кнопку меню.

Возвращаемое значение

Ненулевое значение, если метод выполнен успешно; в противном случае — 0.

Замечания

Этот метод вызывает реализацию базового класса ( CMFCToolBarButton::ExportToMenuButton), а затем добавляет к целевому меню всплывающее меню, содержащее каждый элемент меню панели инструментов в этой кнопке. Этот метод не добавляет вложенные меню во всплывающее меню.

Этот метод завершается ошибкой, если родительская панель инструментов имеет значение NULL или m_pToolBarреализация базового класса возвращает ЗНАЧЕНИЕ FALSE.

CMFCDropDownToolbarButton::GetDropDownToolBar

Извлекает раскрывающуюся панель инструментов, связанную с кнопкой.

CMFCToolBar* GetDropDownToolBar() const;

Возвращаемое значение

Раскрывающийся список инструментов, связанный с кнопкой.

Замечания

Этот метод возвращает m_pToolBar элемент данных.

CMFCDropDownToolbarButton::IsDropDown

Определяет, открыта ли в настоящее время раскрывающаяся панель инструментов.

BOOL IsDropDown() const;

Возвращаемое значение

Ненулевое значение, если в настоящее время открыта раскрывающаяся панель инструментов; в противном случае — 0.

Замечания

Платформа открывает раскрывающийся список инструментов с помощью метода CMFCDropDownToolbarButton::D ropDownToolbar . Платформа закрывает раскрывающийся список, когда пользователь нажимает левую кнопку мыши в области, отличной от клиента, на панели инструментов раскрывающегося списка.

CMFCDropDownToolbarButton::IsExtrasize

Определяет, может ли кнопка отображаться с расширенной границей.

virtual BOOL IsExtraSize() const;

Возвращаемое значение

Ненулевое значение, если кнопка панели инструментов может отображаться с расширенной границей; в противном случае — 0.

Замечания

Дополнительные сведения о расширенных границах см. в разделе CMFCToolBarButton::IsExtraSize.

CMFCDropDownToolbarButton::m_uiShowBarDelay

Указывает время, которое пользователь должен удерживать кнопку мыши до появления раскрывающейся панели инструментов.

static UINT m_uiShowBarDelay;

Замечания

Время задержки измеряется в миллисекундах. Значение по умолчанию — 500. Можно задать еще одну задержку, изменив значение этого общего элемента данных.

CMFCDropDownToolbarButton::OnCalculateSize

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

virtual SIZE OnCalculateSize(
    CDC* pDC,
    const CSize& sizeDefault,
    BOOL bHorz);

Параметры

pDC
[in] Контекст устройства, отображающий кнопку.

sizeDefault
[in] Размер кнопки по умолчанию.

bHorz
[in] Состояние док-станции родительской панели инструментов. Этот параметр имеет значение TRUE, если панель инструментов закреплена горизонтально или плавает или false, если панель инструментов закреплена по вертикали.

Возвращаемое значение

Структура SIZE , содержащая размеры кнопки в пикселях.

Замечания

Этот метод расширяет реализацию базового класса ( CMFCToolBarButton::OnCalculateSize), добавив ширину раскрывающейся стрелки в горизонтальное измерение размера кнопки.

CMFCDropDownToolbarButton::OnChangeParentWnd

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

virtual void OnChangeParentWnd(CWnd* pWndParent);

Параметры

pWndParent
[in] Новое родительское окно.

Замечания

Этот метод переопределяет реализацию базового класса (CMFCToolBarButton::OnChangeParentWnd), очищая текстовую метку (CMFCToolBarButton::m_strText) и задав cmFCToolBarButton::m_bText и CMFCToolBarButton::m_bUserButton элементы данных false.

CMFCDropDownToolbarButton::OnClick

Вызывается платформой, когда пользователь нажимает кнопку мыши.

virtual BOOL OnClick(
    CWnd* pWnd,
    BOOL bDelay = TRUE);

Параметры

pWnd
[in] Родительское окно кнопки панели инструментов.

bDelay
[in] ЗНАЧЕНИЕ TRUE, если сообщение должно обрабатываться с задержкой.

Возвращаемое значение

Ненулевое значение, если кнопка обрабатывает сообщение нажатия; в противном случае — 0.

Замечания

Этот метод расширяет реализацию базового класса CMFCToolBarButton::OnClick, обновляя состояние раскрывающейся панели инструментов.

Когда пользователь нажимает кнопку панели инструментов, этот метод создает таймер, который ожидает продолжительность времени, указанного элементом данных CMFCDropDownToolbarButton::m_uiShowBarDelay элемент данных, а затем открывает раскрывающийся список панели инструментов с помощью метода CMFCDropDownToolbarButton::D ropDownToolbar. Этот метод закрывает раскрывающийся список во второй раз, когда пользователь нажимает кнопку панели инструментов.

CMFCDropDownToolbarButton::OnClickUp

Вызывается платформой, когда пользователь освобождает кнопку мыши.

virtual BOOL OnClickUp();

Возвращаемое значение

Ненулевое значение, если кнопка обрабатывает сообщение нажатия; в противном случае — 0.

Замечания

Этот метод расширяет реализацию базового класса CMFCToolBarButton::OnClickUp путем обновления состояния раскрывающейся панели инструментов.

Этот метод останавливает таймер панели инструментов раскрывающегося списка, если он активен. При открытии откроется панель инструментов раскрывающегося списка.

Дополнительные сведения о раскрывающейся панели инструментов и таймере раскрывающегося списка см. в разделе CMFCDropDownToolbarButton::OnClick.

CMFCDropDownToolbarButton::OnContextHelp

Вызывается платформой, когда родительская панель инструментов обрабатывает сообщение WM_HELPHITTEST.

virtual BOOL OnContextHelp(CWnd* pWnd);

Параметры

pWnd
[in] Родительское окно кнопки панели инструментов.

Возвращаемое значение

Ненулевое значение, если кнопка обрабатывает сообщение справки; в противном случае — 0.

Замечания

Этот метод расширяет реализацию базового класса (CMFCToolBarButton::OnContextHelp), вызывая метод CMFCDropDownToolbarButton::OnClick с параметром bDelay, равным FALSE. Этот метод возвращает значение, возвращаемое CMFCDropDownToolbarButton::OnClick.

Дополнительные сведения о сообщении WM_HELPHITTEST см. в разделе TN028: поддержка справки с учетом контекста.

CMFCDropDownToolbarButton::OnCustomizeMenu

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

virtual BOOL OnCustomizeMenu(CMenu* pMenu);

Параметры

pMenu
[in] Меню для настройки.

Возвращаемое значение

Этот метод возвращает ЗНАЧЕНИЕ TRUE.

Замечания

Этот метод расширяет реализацию базового класса ( CMFCToolBarButton::OnCustomizeMenu), отключив следующие элементы меню:

  • Копирование изображения кнопки

  • Внешний вид кнопки

  • Изображение

  • Текст

  • Изображение и текст

Переопределите этот метод, чтобы изменить контекстное меню, которое платформа отображает в режиме настройки.

CMFCDropDownToolbarButton::OnDraw

Вызывается платформой для рисования кнопки с помощью указанных стилей и параметров.

virtual void OnDraw(
    CDC* pDC,
    const CRect& rect,
    CMFCToolBarImages* pImages,
    BOOL bHorz = TRUE,
    BOOL bCustomizeMode = FALSE,
    BOOL bHighlight = FALSE,
    BOOL bDrawBorder = TRUE,
    BOOL bGrayDisabledButtons = TRUE);

Параметры

pDC
[in] Контекст устройства, отображающий кнопку.

rect
[in] Ограничивающий прямоугольник кнопки.

pImages
[in] Коллекция изображений панели инструментов, связанных с кнопкой.

bHorz
[in] Состояние док-станции родительской панели инструментов. Этот параметр имеет значение TRUE, если кнопка закреплена горизонтально и FALSE при закреплении кнопки по вертикали.

bCustomizeMode
[in] Указывает, находится ли панель инструментов в режиме настройки. Этот параметр имеет значение TRUE, если панель инструментов находится в режиме настройки и false, если панель инструментов не находится в режиме настройки.

bHighlight
[in] Указывает, выделена ли кнопка. Этот параметр имеет значение TRUE, если кнопка выделена и false, если кнопка не выделена.

bDrawBorder
[in] Указывает, должна ли кнопка отображать ее границу. Этот параметр имеет значение TRUE, если кнопка должна отображать ее границу и FALSE, если кнопка не должна отображать ее границу.

bGrayDisabledButtons
[in] Указывает, следует ли оттенять отключенные кнопки или использовать коллекцию отключенных изображений. Этот параметр имеет значение TRUE, если отключенные кнопки должны быть затеняются и false, если этот метод должен использовать коллекцию отключенных образов.

Замечания

Переопределите этот метод, чтобы настроить рисунок кнопки панели инструментов.

CMFCDropDownToolbarButton::OnDrawOnCustomizeList

Вызывается платформой для рисования кнопки в области "Команды " диалогового окна "Настройка ".

virtual int OnDrawOnCustomizeList(
    CDC* pDC,
    const CRect& rect,
    BOOL bSelected);

Параметры

pDC
[in] Контекст устройства, отображающий кнопку.

rect
[in] Ограничивающий прямоугольник кнопки.

bSelected
[in] Выбрана ли кнопка. Если этот параметр имеет значение TRUE, выбрана кнопка. Если этот параметр имеет значение FALSE, кнопка не выбрана.

Возвращаемое значение

Ширина (в пикселях) кнопки в указанном контексте устройства.

Замечания

Этот метод вызывается диалоговым окном настройки ( вкладка "Команды "), когда кнопка должна отображаться в списке "Рисование владельца".

Этот метод расширяет реализацию базового класса ( CMFCToolBarButton::OnDrawOnCustomizeList), изменив текстовую метку кнопки на имя кнопки (т. е. значение параметра lpszName , переданного конструктору).

CMFCDropDownToolbarButton::Serialize

Считывает этот объект из архива или записывает его в архив.

virtual void Serialize(CArchive& ar);

Параметры

ар
[in] CArchive Объект, из которого выполняется сериализация.

Замечания

Этот метод расширяет реализацию базового класса ( CMFCToolBarButton::Serialize), сериализуя идентификатор ресурса родительской панели инструментов. При загрузке архива ( CArchive::IsLoading возвращает ненулевое значение), этот метод задает m_pToolBar элемент данных на панели инструментов, содержащей сериализованный идентификатор ресурса.

CMFCDropDownToolbarButton::SetDefaultCommand

Задает команду по умолчанию, которую использует платформа, когда пользователь нажимает кнопку.

void SetDefaultCommand(UINT uiCmd);

Параметры

uiCmd
[in] Идентификатор команды по умолчанию.

Замечания

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

См. также

Диаграмма иерархии
Классы
Класс CMFCDropDownToolBar
Класс CMFCToolBar
Класс CMFCToolBarMenuButton
Пошаговое руководство. Размещение элементов управления на панели инструментов