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


Класс CMFCMenuButton

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

Синтаксис

class CMFCMenuButton : public CMFCButton

Участники

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

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

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

Имя Описание
CMFCMenuButton::P reTranslateMessage Вызывается платформой для перевода сообщений окна перед отправкой. (Переопределяет CMFCButton::PreTranslateMessage.)
CMFCMenuButton::SizeToContent Изменяет размер кнопки в соответствии с размером текста и изображения.

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

Имя Описание
CMFCMenuButton::m_bOSMenu Указывает, следует ли отображать всплывающее меню по умолчанию или использовать CContextMenuManager::TrackPopupMenu.
CMFCMenuButton::m_bRightArrow Указывает, появится ли всплывающее меню под кнопкой или справа от кнопки.
CMFCMenuButton::m_bStayPressed Указывает, изменяет ли кнопка меню состояние после того, как пользователь освобождает кнопку.
CMFCMenuButton::m_hMenu Дескриптор подключенного меню Windows.
CMFCMenuButton::m_nMenuResult Идентификатор, указывающий элемент, выбранный пользователем во всплывающем меню.
CMFCMenuButton::m_bDefaultClick Разрешить обработку по умолчанию (в тексте или изображении кнопки).

Замечания

Класс CMFCMenuButton является производным от класса CMFCButton, который, в свою очередь, является производным от класса CButton. Поэтому в коде можно использовать CMFCMenuButton так же, как и в CButtonкоде.

При создании CMFCMenuButtonмаркера необходимо передать в связанное всплывающее меню. Затем вызовите функцию CMFCMenuButton::SizeToContent. CMFCMenuButton::SizeToContent Проверяет, достаточно ли размер кнопки, чтобы включить стрелку, указывающую на расположение, в котором появится всплывающее окно , а именно под кнопкой или справа от нее.

Пример

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

CMFCMenuButton m_btnMenu;
// CMenu m_menu
m_btnMenu.m_hMenu = m_menu.GetSubMenu(0)->GetSafeHmenu();
m_btnMenu.SizeToContent();
// set to FALSE so that the framework calls CContextMenuManager::TrackPopupMenu
// to display its menu
m_btnMenu.m_bOSMenu = FALSE;

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

CObject

CCmdTarget

CWnd

CButton

CMFCButton

CMFCMenuButton

Требования

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

CMFCMenuButton::CMFCMenuButton

Создает новый объект CMFCMenuButton .

CMFCMenuButton();

CMFCMenuButton::m_bOSMenu

Логическое переменное члена, указывающее всплывающее меню платформы.

BOOL m_bOSMenu;

Замечания

Если m_bOSMenu значение true, платформа вызывает унаследованный TrackPopupMenu метод для этого объекта. В противном случае платформа вызывает CContextMenuManager::TrackPopupMenu.

CMFCMenuButton::m_bRightArrow

Логическая переменная-член, указывающая расположение всплывающего меню.

BOOL m_bRightArrow;

Замечания

Когда пользователь нажимает кнопку меню, приложение отображает всплывающее меню. Платформа отобразит всплывающее меню под кнопкой или справа от кнопки. Кнопка также имеет небольшую стрелку, указывающую, где появится всплывающее меню. Если m_bRightArrow значение true, платформа отображает всплывающее меню справа от кнопки. В противном случае отображается всплывающее меню под кнопкой.

CMFCMenuButton::m_bStayPressed

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

BOOL m_bStayPressed;

Замечания

m_bStayPressed Если элемент имеет значение FALSE, кнопка меню не нажимается при нажатии кнопки. В этом случае платформа отображает только всплывающее меню.

m_bStayPressed Если элемент имеет значение TRUE, при нажатии кнопки пользователь нажимает кнопку. Он остается нажимаемым до тех пор, пока пользователь не закрывает всплывающее меню, сделав выделение или отменив его.

CMFCMenuButton::m_hMenu

Дескриптор в подключенном меню.

HMENU m_hMenu;

Замечания

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

CMFCMenuButton::m_nMenuResult

Целое число, указывающее, какой элемент пользователь выбирает из всплывающего меню.

int m_nMenuResult;

Замечания

Значение этой переменной-члена равно нулю, если пользователь отменяет меню без выделения или ошибки.

CMFCMenuButton::m_bDefaultClick

Разрешает обработку текста или изображений по умолчанию на кнопке.

BOOL  m_bDefaultClick;

Замечания

Если задать m_bDefaultClick значение false, кнопка отображает меню при нажатии кнопки в любом месте кнопки.

CMFCMenuButton::P reTranslateMessage

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

virtual BOOL PreTranslateMessage(MSG* pMsg);

Параметры

pMsg
[in] Указывает на структуру MSG , содержащую сообщение для обработки.

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

Ненулевое значение, если сообщение было переведено и не должно быть отправлено; 0, если сообщение не было переведено и должно быть отправлено.

Замечания

CMFCMenuButton::SizeToContent

Изменяет размер кнопки в соответствии с размером текста и размером изображения.

virtual CSize SizeToContent(BOOL bCalcOnly = FALSE);

Параметры

bCalcOnly
[in] Логический параметр, указывающий, изменяет ли этот метод размер кнопки.

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

Объект CSize, указывающий новый размер кнопки.

Замечания

Если вы вызываете эту функцию и bCalcOnly имеет значение TRUE, SizeToContent вычислит только новый размер кнопки.

Новый размер кнопки вычисляется для соответствия тексту, изображению и стрелке кнопки. Платформа также добавляет предопределенные поля 10 пикселей для горизонтального края и 5 пикселей для вертикального края.

См. также

Диаграмма иерархии
Классы
Класс CMFCButton