Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Библиотека классов 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 и отображаться в виде кнопки меню со всплывным меню.
Иерархия наследования
Требования
Заголовок: 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));
CMFCDropDownToolbarButton::D ropDownToolbar
Открывает раскрывающийся список инструментов.
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
Пошаговое руководство. Размещение элементов управления на панели инструментов