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


Класс CMFCPopupMenu

Реализует возможности всплывающего меню Windows и расширяет его, добавляя такие возможности как перемещаемые меню и подсказки. Дополнительные сведения см. в исходном коде, расположенном в папке VC\atlmfc\src\mfc установки Visual Studio.

Синтаксис

class CMFCPopupMenu : public CMiniFrameWnd

Участники

Защищенные конструкторы

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

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

Имя Описание
CMFCPopupMenu::ActivatePopupMenu
CMFCPopupMenu::AlwaysShowEmptyToolsEntry Задает, включено ли всплывающее меню для отображения пустых записей для определяемых пользователем инструментов.
CMFCPopupMenu::AreAllCommandsShown
CMFCPopupMenu::CheckArea Определяет расположение точки относительно всплывающего меню.
CMFCPopupMenu::CloseMenu
CMFCPopupMenu::Create Создает всплывающее меню и присоединяет его к объекту CMFCPopupMenu .
CMFCPopupMenu::D efaultMouseClickOnClose
CMFCPopupMenu::EnableMenuLogo Инициализирует логотип всплывающего меню.
CMFCPopupMenu::EnableMenuSound Включает звук меню.
CMFCPopupMenu::EnableResize
CMFCPopupMenu::EnableScrolling
CMFCPopupMenu::EnableVertResize
CMFCPopupMenu::FindSubItemByCommand
CMFCPopupMenu::GetActiveMenu Возвращает активное меню.
CMFCPopupMenu::GetAnimationSpeed Возвращает скорость анимации для всплывающих меню.
CMFCPopupMenu::GetAnimationType Возвращает текущий тип всплывающей анимации меню.
CMFCPopupMenu::GetDropDirection
CMFCPopupMenu::GetForceMenuFocus Указывает, возвращается ли фокус в строку меню при отображении всплывающего меню.
CMFCPopupMenu::GetForceShadow
CMFCPopupMenu::GetHMenu Возвращает дескриптор для подключенного ресурса меню.
CMFCPopupMenu::GetMenuBar Возвращает CMFCPopupMenuBar, внедренный в всплывающее меню.
CMFCPopupMenu::GetMenuItem Возвращает указатель на пункт меню по указанному индексу.
CMFCPopupMenu::GetMenuItemCount Возвращает количество элементов во всплывающем меню.
CMFCPopupMenu::GetMessageWnd Возвращает указатель на окно, в котором платформа направляет всплывающие сообщения меню.
CMFCPopupMenu::GetParentArea
CMFCPopupMenu::GetParentButton Возвращает указатель на родительскую кнопку панели инструментов.
CMFCPopupMenu::GetParentPopupMenu Возвращает указатель на родительское всплывающее меню.
CMFCPopupMenu::GetParentRibbonElement
CMFCPopupMenu::GetParentToolBar Возвращает указатель на родительскую панель инструментов.
CMFCPopupMenu::GetQuickCustomizeType
CMFCPopupMenu::GetSelItem Возвращает указатель на выбранную в данный момент команду меню.
CMFCPopupMenu::HasBeenResized
CMFCPopupMenu::HideRarelyUsedCommands Указывает, может ли всплывающее меню скрывать редко используемые команды.
CMFCPopupMenu::InCommand
CMFCPopupMenu::InsertItem Вставляет новый элемент в всплывающее меню в указанном расположении.
CMFCPopupMenu::InsertSeparator Вставляет разделитель в всплывающее меню в указанном расположении.
CMFCPopupMenu::IsAlwaysClose
CMFCPopupMenu::IsAlwaysShowEmptyToolsEntry
CMFCPopupMenu::IsCustomizePane Указывает, работает ли всплывающее меню как QuickCustomizePane.
CMFCPopupMenu::IsEscClose
CMFCPopupMenu::IsIdle Указывает, неактивно ли всплывающее меню в настоящее время неактивно.
CMFCPopupMenu::IsMenuSound
CMFCPopupMenu::IsQuickCustomize Определяет, находится ли связанный класс CMFCToolBarMenuButton в режиме QuickCustomize.
CMFCPopupMenu::IsResizeble
CMFCPopupMenu::IsRightAlign Указывает, соответствует ли меню выравнивание по правому краю или по левому краю.
CMFCPopupMenu::IsScrollable
CMFCPopupMenu::IsSendMenuSelectMsg Указывает, уведомляет ли платформа родительский кадр, когда пользователь выбирает команду в всплывающем меню.
CMFCPopupMenu::IsShown Указывает, отображается ли всплывающее меню.
CMFCPopupMenu::MoveTo
CMFCPopupMenu::OnCmdMsg (Переопределяет CFrameWnd::OnCmdMsg.)
CMFCPopupMenu::P ostCommand
CMFCPopupMenu::P reTranslateMessage (Переопределяет CFrameWnd::PreTranslateMessage.)
CMFCPopupMenu::RecalcLayout Вызывается платформой, когда стандартные панели управления переключаются или отключаются, а также при изменении размера окна фрейма. (Переопределения CFrameWnd::RecalcLayout.)
CMFCPopupMenu::RemoveAllItems Удаляет все элементы из всплывающего меню.
CMFCPopupMenu::RemoveItem Удаляет указанный элемент из всплывающего меню.
CMFCPopupMenu::SaveState
CMFCPopupMenu::SetAnimationSpeed Задает скорость анимации для всплывающих меню.
CMFCPopupMenu::SetAnimationType Задает тип анимации для всплывающего меню.
CMFCPopupMenu::SetAutoDesk
CMFCPopupMenu::SetDefaultItem Задает команду по умолчанию для всплывающего меню.
CMFCPopupMenu::SetForceMenuFocus Заставляет фокус ввода вернуться в строку меню при отображении всплывающего меню.
CMFCPopupMenu::SetForceShadow Заставляет платформу рисовать тени меню, когда всплывающие меню отображаются за пределами основного кадра.
CMFCPopupMenu::SetMaxWidth Задайте максимальную ширину всплывающего меню.
CMFCPopupMenu::SetMessageWnd
CMFCPopupMenu::SetParentRibbonElement
CMFCPopupMenu::SetQuickCustomizeType
CMFCPopupMenu::SetQuickMode
CMFCPopupMenu::SetRightAlign Задает выравнивание меню для всплывающих меню.
CMFCPopupMenu::SetSendMenuSelectMsg Задает флаг, который определяет, уведомляет ли всплывающее меню его родительский кадр, когда пользователь выбирает команду.
CMFCPopupMenu::ShowAllCommands Принудив всплывающее меню отобразить все команды.
CMFCPopupMenu::TriggerResize
CMFCPopupMenu::UpdateAllShadows Обновляет тени для всех открытых всплывающих меню.
CMFCPopupMenu::UpdateShadow Обновляет тень всплывающего меню.

Защищенные методы

Имя Описание
CMFCPopupMenu::CreateTearOffBar
CMFCPopupMenu::OnChangeHot
CMFCPopupMenu::OnChooseItem

Замечания

Как правило, MFC автоматически создает всплывающие меню. Если вы хотите создать CMFCPopupMenu объект вручную, выделите его в куче и вызовите CMFCPopupMenu::Create.

Пример

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

// 30 is the size of the logo in pixels.
pPopupMenu->EnableMenuLogo(30);
pPopupMenu->EnableMenuSound();
// 500 is the animation speed in milliseconds.
pPopupMenu->SetAnimationSpeed(500);
pPopupMenu->SetAnimationType(CMFCPopupMenu::SLIDE);
pPopupMenu->SetForceShadow(true);
// 200 is the maximum width of the pop-up menu in pixels.
pPopupMenu->SetMaxWidth(200);
pPopupMenu->SetRightAlign();
pPopupMenu->InsertSeparator();

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

CObject

CCmdTarget

CWnd

CFrameWnd

CMiniFrameWnd

CMFCPopupMenu

Требования

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

CMFCPopupMenu::ActivatePopupMenu

static BOOL __stdcall ActivatePopupMenu(
    CFrameWnd* pTopFrame,
    CMFCPopupMenu* pPopupMenu);

Параметры

[in] pTopFrame
[in] pPopupMenu

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

Замечания

CMFCPopupMenu::AlwaysShowEmptyToolsEntry

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

static void AlwaysShowEmptyToolsEntry(BOOL bShow = TRUE);

Параметры

bShow
[in] ЗНАЧЕНИЕ TRUE, если всплывающее меню может отображать пустые записи; Значение FALSE в противном случае.

CMFCPopupMenu::AreAllCommandsShown

BOOL AreAllCommandsShown() const;

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

Замечания

CMFCPopupMenu::CheckArea

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

MENUAREA_TYPE CheckArea(const CPoint& ptScreen) const;

Параметры

ptScreen
[in] Точка в координатах экрана.

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

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

Замечания

Параметр MENUAREA_TYPE может иметь одно из следующих значений.

  • OUTSIDE — ptScreen находится вне всплывающего меню.

  • ЛОГОТИП — ptScreen находится над областью логотипа.

  • TEAROFF_CAPTION - ptScreen переключится на подпись.

  • SHADOW_BOTTOM — ptScreen находится на нижней тени всплывающего меню.

  • SHADOW_RIGHT — ptScreen находится в правой тени всплывающего меню.

  • MENU — ptScreen выполняется по команде.

CMFCPopupMenu::CloseMenu

void CloseMenu(BOOL bSetFocusToBar = FALSE);

Параметры

[in] bSetFocusToBar

Замечания

CMFCPopupMenu::CMFCPopupMenu

Создает объект CMFCPopupMenu.

CMFCPopupMenu(
    CMFCToolBarsMenuPropertyPage* pCustPage,
    LPCTSTR lpszTitle);

Параметры

pCustPage
[in] Указатель на страницу настройки.

lpszTitle
[in] Строка, содержащая заголовок меню.

Замечания

Этот метод выделяет ресурсы для объекта CMFCPopupMenu. Чтобы создать всплывающее меню, вызовите CMFCPopupMenu::Create.

CMFCPopupMenu::Create

Создает всплывающее меню и присоединяет его к объекту CMFCPopupMenu .

virtual BOOL Create(
    CWnd* pWndParent,
    int x,
    int y,
    HMENU hMenu,
    BOOL bLocked = FALSE,
    BOOL bOwnMessage = FALSE);

Параметры

pWndParent
[in] Родительское окно для CMFCPopupMenuобъекта .

x
[in] Горизонтальная координата экрана для расположения всплывающего меню

г
[in] Координата вертикального экрана для расположения всплывающего меню.

hMenu
[in] Дескриптор ресурса меню.

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

bOwnMessage
[in] Логический параметр, указывающий, как платформа направляет сообщения меню. Дополнительные сведения см. в разделе "Примечания".

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

ЗНАЧЕНИЕ TRUE, если метод выполнен успешно; в противном случае ЗНАЧЕНИЕ FALSE.

Замечания

Если bOwnMessage имеет значение TRUE, платформа направляет все сообщения меню в pWndParent. pWndParent не должно иметь значение NULL, если bOwnMessage имеет значение TRUE. Если bOwnMessage имеет значение FALSE, платформа направляет сообщения меню в родительское всплывающее меню.

Пример

В следующем примере показано, как использовать Create метод CMFCPopuMenu класса. Этот фрагмент кода является частью примера пользовательских страниц.

CMFCPopupMenu *pPopupMenu = new CMFCPopupMenu;
// CPoint point
// CMenu* pPopup
// The this pointer points to CMainFrame class which extends the CFrameWnd class.
pPopupMenu->Create(this, point.x, point.y, pPopup->Detach());

CMFCPopupMenu::CreateTearOffBar

virtual CPane* CreateTearOffBar(
    CFrameWnd* pWndMain,
    UINT uiID,
    LPCTSTR lpszName);

Параметры

[in] pWndMain
[in] uiID
[in] lpszName

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

Замечания

CMFCPopupMenu::D efaultMouseClickOnClose

virtual BOOL DefaultMouseClickOnClose() const;

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

Замечания

Инициализирует логотип всплывающего меню.

void EnableMenuLogo(
    int iLogoSize,
    LOGO_LOCATION nLogoLocation = MENU_LOGO_LEFT);

Параметры

iLogoSize
[in] Размер логотипа в пикселях.

nLogoLocation
[in] Перечислимый тип данных, указывающий расположение логотипа.

Замечания

Чтобы отобразить логотип, реализуйте метод CFrameWndEx::OnDrawMenuLogo в главном окне кадра.

Возможные значения для nLogoLocation : MENU_LOGO_LEFT, MENU_LOGO_RIGHT, MENU_LOGO_TOP и MENU_LOGO_BOTTOM.

CMFCPopupMenu::EnableMenuSound

Включает звук меню.

static void EnableMenuSound(BOOL bEnable = TRUE);

Параметры

bEnable
[in] Значение TRUE для включения звука, FALSE в противном случае.

Замечания

Если включить звук, платформа вызывает метод PlaySound , когда пользователь открывает всплывающее меню или выбирает команду меню. Эта функция включена по умолчанию.

CMFCPopupMenu::EnableResize

void EnableResize(CSize sizeMinResize);

Параметры

[in] sizeMinResize

Замечания

CMFCPopupMenu::EnableScrolling

void EnableScrolling(BOOL = TRUE);

Параметры

[in] BOOL

Замечания

CMFCPopupMenu::EnableVertResize

void EnableVertResize(int nMinResize);

Параметры

[in] nMinResize

Замечания

CMFCPopupMenu::FindSubItemByCommand

CMFCToolBarMenuButton* FindSubItemByCommand(UINT uiCmd) const;

Параметры

[in] uiCmd

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

Замечания

CMFCPopupMenu::GetActiveMenu

Возвращает активное меню.

static CMFCPopupMenu* GetActiveMenu();

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

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

Замечания

Каждое приложение может иметь не более одного активного всплывающего меню.

CMFCPopupMenu::GetAnimationSpeed

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

static UINT GetAnimationSpeed();

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

Целое число, указывающее время (в миллисекундах), которое выполняется анимация всплывающего меню.

Замечания

Скорость анимации — это глобальное значение. Используйте CMFCPopupMenu::SetAnimationSpeed , чтобы изменить скорость анимации для всплывающих меню.

CMFCPopupMenu::GetAnimationType

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

static CMFCPopupMenu::ANIMATION_TYPE GetAnimationType(BOOL bNoSystem = FALSE);

Параметры

bNoSystem
[in] Логический параметр, указывающий, проверяет ли этот метод глобальное значение. ЗНАЧЕНИЕ FALSE, если этот метод возвращает стиль анимации для этого экземпляра класса CMFCPopupMenu.

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

Перечисленное значение, описывающее тип анимации.

Замечания

Стиль анимации всплывающих меню является глобальным для приложения. Используйте CMFCPopupMenu::SetAnimationType , чтобы задать стиль анимации.

В следующей таблице перечислены возможные типы анимации.

значение Описание
NO_ANIMATION Всплывающее меню не анимировано и отображается немедленно.
РАЗВЕРТЫВАТЬ Платформа отображает всплывающее меню из левого верхнего угла в правый нижний угол.
СКОЛЬЗИТЬ Всплывающее меню перемещается сверху вниз.
ВЯНУТЬ Всплывающее меню сначала отображается прозрачным и постепенно сплошным.

CMFCPopupMenu::GetDropDirection

DROP_DIRECTION GetDropDirection() const;

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

Замечания

CMFCPopupMenu::GetForceMenuFocus

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

static BOOL GetForceMenuFocus();

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

ЗНАЧЕНИЕ TRUE, если фокус ввода возвращается в строку меню при отображении всплывающего меню; Значение FALSE, если всплывающее меню сохраняет фокус.

Замечания

По умолчанию приложение не возвращает фокус в строке меню. Чтобы изменить этот параметр, используйте CMFCPopupMenu::SetForceMenuFocus.

CMFCPopupMenu::GetForceShadow

static BOOL __stdcall GetForceShadow();

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

Замечания

CMFCPopupMenu::GetHMenu

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

HMENU GetHMenu();

CMFCPopupMenu::GetMenuBar

Возвращает CMFCPopupMenuBar, внедренный в всплывающее меню.

virtual CMFCPopupMenuBar* GetMenuBar();

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

Указатель на внедренный CMFCPopupMenuBar.

Замечания

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

CMFCPopupMenu::GetMenuItem

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

CMFCToolBarMenuButton* GetMenuItem(int iIndex) const;

Параметры

iIndex
[in] Отсчитываемый от нуля индекс элемента меню.

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

Указатель на пункт меню. Значение NULL, если индекс недопустим.

Замечания

Элементы меню представлены классом CMFCToolBarMenuButton. При вызове этого метода он возвращает указатель на соответствующий CMFCToolBarMenuButtonобъект.

CMFCPopupMenu::GetMenuItemCount

Возвращает количество элементов во всплывающем меню.

int GetMenuItemCount() const;

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

Количество элементов в меню.

CMFCPopupMenu::GetMessageWnd

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

CWnd* GetMessageWnd() const;

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

Указатель на окно, которое получает сообщения всплывающего меню; Значение NULL, если окно отсутствует.

Замечания

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

CMFCPopupMenu::GetParentArea

virtual CWnd* GetParentArea(CRect& rectParentBtn);

Параметры

[in] rectParentBtn

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

Замечания

CMFCPopupMenu::GetParentButton

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

CMFCToolBarMenuButton* GetParentButton() const;

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

Указатель на родительскую кнопку панели инструментов. ЗНАЧЕНИЕ NULL, если всплывающее меню не имеет родительской кнопки панели инструментов.

Замечания

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

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

CMFCPopupMenu::GetParentPopupMenu

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

CMFCPopupMenu* GetParentPopupMenu() const;

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

Указатель на родительский CMFCPopupMenu объект; Значение NULL, если родительское всплывающее меню отсутствует.

Замечания

Всплывающее меню содержит родительский CMFCPopupMenu объект, только если это подменю.

CMFCPopupMenu::GetParentRibbonElement

CMFCRibbonBaseElement* GetParentRibbonElement() const;

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

Замечания

CMFCPopupMenu::GetParentToolBar

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

CMFCToolBar* GetParentToolBar() const;

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

Указатель на родительскую панель инструментов. ЗНАЧЕНИЕ NULL, если всплывающее меню не имеет родительской панели инструментов.

Замечания

CMFCPopupMenu Если это контекстное меню, у него нет родительской панели инструментов.

CMFCPopupMenu::GetQuickCustomizeType

QUICK_CUSTOMIZE_TYPE GetQuickCustomizeType() const;

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

Замечания

CMFCPopupMenu::GetSelItem

Возвращает указатель на выбранную в данный момент команду меню.

CMFCToolBarMenuButton* GetSelItem();

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

Указатель на выбранную в данный момент команду меню; ЗНАЧЕНИЕ NULL, если элемент не выбран.

Замечания

Команды меню во всплывающем меню представлены классом CMFCToolBarMenuButton или классом, производным от CMFCToolBarMenuButton.

CMFCPopupMenu::HasBeenResized

BOOL HasBeenResized() const;

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

Замечания

CMFCPopupMenu::HideRarelyUsedCommands

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

BOOL HideRarelyUsedCommands() const;

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

ЗНАЧЕНИЕ TRUE, если всплывающее меню может скрыть редко используемые команды; в противном случае ЗНАЧЕНИЕ FALSE.

Замечания

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

CMFCPopupMenu::InCommand

virtual BOOL InCommand();

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

Замечания

CMFCPopupMenu::InsertItem

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

int InsertItem(
    const CMFCToolBarMenuButton& button,
    int iInsertA = -1);

Параметры

кнопка
[in] Ссылка на добавляемый элемент меню.

iInsertAt
[in] Отсчитываемый от нуля индекс нового элемента. Если значение iInsertAt равно -1, элемент добавляется в конец меню.

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

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

Замечания

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

CMFCPopupMenu::InsertSeparator

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

int InsertSeparator(int iInsertAt = -1);

Параметры

iInsertAt
[in] Отсчитываемый от нуля индекс позиции, в которой этот метод вставляет разделитель.

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

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

Замечания

Значение -1 для iInsertAt означает, что этот метод добавит разделитель в конец всплывающего меню.

Этот метод завершается ошибкой, если iInsertAt является недопустимым значением.

CMFCPopupMenu::IsAlwaysClose

virtual BOOL IsAlwaysClose() const;

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

Замечания

CMFCPopupMenu::IsAlwaysShowEmptyToolsEntry

static BOOL __stdcall IsAlwaysShowEmptyToolsEntry();

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

Замечания

CMFCPopupMenu::IsCustomizePane

Указывает, работает ли всплывающее меню как QuickCustomizePane.

BOOL IsCustomizePane();

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

ЗНАЧЕНИЕ TRUE, если всплывающее окно является QuckCustomizePane; в противном случае — FALSE.

Замечания

Используйте QuickCustomizePane, чтобы пользователь мог напрямую настроить всплывающее меню. QuickCustomizePane — это объектCMFCPopupMenu, который отображается, когда пользователь нажимает кнопку панели инструментов, чтобы изменить ее напрямую.

Приложение должно вызывать этот метод во время CMDIFrameWndEx::OnShowCustomizePane.

CMFCPopupMenu::IsEscClose

BOOL IsEscClose();

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

Замечания

CMFCPopupMenu::IsIdle

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

virtual BOOL IsIdle() const;

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

ЗНАЧЕНИЕ TRUE, если всплывающее меню находится в режиме простоя; в противном случае ЗНАЧЕНИЕ FALSE.

Замечания

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

CMFCPopupMenu::IsMenuSound

static UINT __stdcall IsMenuSound();

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

Замечания

CMFCPopupMenu::IsQuickCustomize

Определяет, находится ли связанный класс CMFCToolBarMenuButton в режиме QuickCustomize.

BOOL IsQuickCustomize();

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

ЗНАЧЕНИЕ TRUE, если связанная кнопка меню находится в режиме QuickCustomize; в противном случае ЗНАЧЕНИЕ FALSE. Этот метод также возвращает значение FALSE, если всплывающее меню не связано с CMFCToolBarMenuButtonним.

Замечания

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

CMFCPopupMenu::IsResizeble

BOOL IsResizeble() const;

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

Замечания

CMFCPopupMenu::IsRightAlign

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

BOOL IsRightAlign() const;

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

ЗНАЧЕНИЕ TRUE, если меню выровнено по правому краю; Значение FALSE, если меню выровнено по левому краю.

Замечания

Чтобы задать выравнивание меню, можно использовать CMFCPopupMenu::SetRightAlign . По умолчанию всплывающие меню используют выравнивание по левому краю.

Выравнивание меню не является глобальным параметром и может отличаться от всплывающих меню.

CMFCPopupMenu::IsScrollable

BOOL IsScrollable() const;

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

Замечания

CMFCPopupMenu::IsSendMenuSelectMsg

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

static BOOL IsSendMenuSelectMsg();

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

ЗНАЧЕНИЕ TRUE, если платформа уведомляет родительский кадр; в противном случае ЗНАЧЕНИЕ FALSE.

Замечания

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

CMFCPopupMenu::IsShown

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

BOOL IsShown() const;

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

ЗНАЧЕНИЕ TRUE, если всплывающее меню отображается; в противном случае ЗНАЧЕНИЕ FALSE.

CMFCPopupMenu::MoveTo

void MoveTo(const CPoint& pt);

Параметры

[in] точка

Замечания

CMFCPopupMenu::OnChangeHot

virtual void OnChangeHot(int nHot);

Параметры

[in] nHot

Замечания

CMFCPopupMenu::OnChooseItem

virtual void OnChooseItem(UINT uidCmdID);

Параметры

[in] uidCmdID

Замечания

CMFCPopupMenu::OnCmdMsg

virtual BOOL OnCmdMsg(
    UINT nID,
    int nCode,
    void* pExtra,
    AFX_CMDHANDLERINFO* pHandlerInfo);

Параметры

[in] nID
[in] nCode
[in] pExtra
[in] pHandlerInfo

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

Замечания

CMFCPopupMenu::P ostCommand

BOOL PostCommand(UINT uiCommandID);

Параметры

[in] uiCommandID

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

Замечания

CMFCPopupMenu::P reTranslateMessage

virtual BOOL PreTranslateMessage(MSG* pMsg);

Параметры

[in] pMsg

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

Замечания

CMFCPopupMenu::RecalcLayout

virtual void RecalcLayout(BOOL bNotify = TRUE);

Параметры

[in] bNotify

Замечания

CMFCPopupMenu::RemoveAllItems

Удаляет все элементы из всплывающего меню.

void RemoveAllItems();

CMFCPopupMenu::RemoveItem

Удаляет указанный элемент из всплывающего меню.

BOOL RemoveItem(int iIndex);

Параметры

iIndex
[in] Отсчитываемый от нуля индекс удаленного элемента.

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

ЗНАЧЕНИЕ TRUE, если метод выполнен успешно; в противном случае ЗНАЧЕНИЕ FALSE.

Замечания

Этот метод автоматически упорядочивает все разделители, затронутые удалением элемента. Дополнительные сведения о перестроении разделителей платформы см. в разделе CMFCToolBar::RemoveButton.

CMFCPopupMenu::SaveState

virtual void SaveState();

Замечания

CMFCPopupMenu::SetAnimationSpeed

Задает скорость анимации для всплывающих меню.

static void SetAnimationSpeed(UINT nElapse);

Параметры

nElapse
[in] Новая скорость анимации в миллисекундах.

Замечания

Скорость анимации — это глобальное значение и влияет на все всплывающие меню в приложении. Это значение указывает, сколько времени занимает анимация для завершения всплывающего меню.

По умолчанию этот параметр имеет значение 30 миллисекунда. Диапазон допустимых значений для nElapse составляет от 0 до 200.

CMFCPopupMenu::SetAnimationType

Задает тип анимации для этого всплывающего меню.

static void SetAnimationType(CMFCPopupMenu::ANIMATION_TYPE type);

Параметры

type
[in] Перечислимый тип данных, указывающий тип анимации.

Замечания

Список допустимых значений для типа см. в разделе CMFCPopupMenu::GetAnimationType.

CMFCPopupMenu::SetAutoDesk

void SetAutoDestroy(BOOL bAutoDestroy = TRUE);

Параметры

[in] bAutoDestroy

Замечания

CMFCPopupMenu::SetDefaultItem

Задает команду по умолчанию для всплывающего меню.

void SetDefaultItem(UINT uiCmd);

Параметры

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

Замечания

Команда по умолчанию во всплывающем меню — это команда, выбранная при появлении всплывающего меню.

CMFCPopupMenu::SetForceMenuFocus

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

static void SetForceMenuFocus(BOOL bValue);

Параметры

bValue
[in] ЗНАЧЕНИЕ TRUE, если требуется, чтобы платформа принудительно перенаправила фокус ввода в строку меню при отображении всплывающего меню. Значение FALSE, если нужно, чтобы всплывающее меню сохранялось.

Замечания

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

CMFCPopupMenu::SetForceShadow

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

static void SetForceShadow(BOOL bValue);

Параметры

bValue
[in] ЗНАЧЕНИЕ TRUE, если требуется, чтобы платформа рисовала тени меню, значение FALSE в противном случае.

Замечания

При вызове этого метода он задает глобальный флаг в приложении. Этот флаг влияет на все всплывающие меню в приложении.

CMFCPopupMenu::SetMaxWidth

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

void SetMaxWidth(int iMaxWidth);

Параметры

iMaxWidth
[in] Максимальная ширина всплывающего меню в пикселях.

Замечания

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

CMFCPopupMenu::SetMessageWnd

void SetMessageWnd(CWnd* pMsgWnd);

Параметры

[in] pMsgWnd

Замечания

CMFCPopupMenu::SetParentRibbonElement

void SetParentRibbonElement(CMFCRibbonBaseElement* pElem);

Параметры

[in] pElem

Замечания

CMFCPopupMenu::SetQuickCustomizeType

void SetQuickCustomizeType(QUICK_CUSTOMIZE_TYPE Type);

Параметры

[in] Тип

Замечания

CMFCPopupMenu::SetQuickMode

void SetQuickMode();

Замечания

CMFCPopupMenu::SetRightAlign

Задает выравнивание меню для всплывающих меню.

void SetRightAlign(BOOL bRightAlign = TRUE);

Параметры

bRightAlign
[in] Логическое значение, указывающее выравнивание меню. ЗНАЧЕНИЕ TRUE указывает на выравнивание вправо, значение FALSE указывает выравнивание влево.

Замечания

По умолчанию все всплывающие меню выровнены по левому краю.

CMFCPopupMenu::SetSendMenuSelectMsg

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

static void SetSendMenuSelectMsg(BOOL bSet = TRUE);

Параметры

bSet
[in] Значение TRUE, если всплывающее меню уведомляет его родительский кадр, значение FALSE в противном случае.

Замечания

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

CMFCPopupMenu::ShowAllCommands

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

void ShowAllCommands();

Замечания

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

CMFCPopupMenu::TriggerResize

void TriggerResize();

Замечания

CMFCPopupMenu::UpdateAllShadows

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

static void UpdateAllShadows(LPRECT lprectScreen = NULL);

Параметры

lprectScreen
[in] Прямоугольник, указывающий регион для обновления в координатах экрана.

Замечания

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

CMFCPopupMenu::UpdateShadow

Обновляет тень всплывающего меню.

void UpdateShadow(LPRECT lprectScreen = NULL);

Параметры

lprectScreen
[in] Прямоугольник в координатах экрана, указывающий границы региона для обновления.

Замечания

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

См. также

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