Класс 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();
Иерархия наследования
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(
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;
Возвращаемое значение
Замечания
CMFCPopupMenu::EnableMenuLogo
Инициализирует логотип всплывающего меню.
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] Прямоугольник в координатах экрана, указывающий границы региона для обновления.
Замечания
Вызовите этот метод, когда всплывающее меню с тенью перекрывает анимированное изображение.