Класс CMFCDropDownToolbarButton
Тип кнопки панели инструментов, который при нажатии ведет себя как обычная кнопка. Однако он открывает раскрывающийся список панели инструментов ( класс 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
Пошаговое руководство. Размещение элементов управления на панели инструментов