共用方式為


CMFCPopupMenu 類別

實作 Windows 快顯功能表功能,並加入功能 (例如 Tear-Off 功能表和工具提示) 進行擴充。 如需更多詳細資料,請參閱 Visual Studio 安裝位置下之 VC\atlmfc\src\mfc 資料夾中的原始程式碼。

語法

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::SetAutoDestroy
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]快捷功能表位置的水平螢幕座標

y
[in]快捷功能表位置的垂直螢幕座標。

hMenu
[in]功能表資源的句柄。

封鎖
[in]布爾參數,指出功能表是否可自定義。 FALSE 表示可自定義快捷功能表。

bOwnMessage
[in]布爾參數,指出架構如何路由傳送功能表訊息。 如需詳細資訊,請參閱<備註>一節。

傳回值

如果方法成功,則為TRUE;否則為 FALSE。

備註

如果 bOwnMessage 為 TRUE,架構會將任何功能表訊息路由傳送至 pWndParent如果 bOwnMessage 為 TRUE,pWndParent 不得為 NULL。 如果 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]布爾參數,指出這個方法是否檢查全域值。 如果您想要此方法傳回 CMFCPopupMenu 類別實例的動畫樣式,則為 FALSE。

傳回值

描述動畫類型的列舉值。

備註

快捷功能表的動畫樣式是應用程式的全域樣式。 使用 CMFCPopupMenu::SetAnimationType 來設定動畫樣式。

下表列出可能的動畫類型。

Description
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。

備註

iInsertAt 的 -1 值表示這個方法會將分隔符新增至快捷功能表的結尾。

如果 iInsertAt 是無效的值,這個方法就會失敗。

CMFCPopupMenu::IsAlwaysClose

virtual BOOL IsAlwaysClose() const;

傳回值

備註

CMFCPopupMenu::IsAlwaysShowEmptyToolsEntry

static BOOL __stdcall IsAlwaysShowEmptyToolsEntry();

傳回值

備註

CMFCPopupMenu::IsCustomizePane

指出快顯功能表是否以QuickCustomizePane的形式運作。

BOOL IsCustomizePane();

傳回值

如果快顯是 QuckCustomizePane,則為 TRUE;否則為 FALSE。

備註

使用 QuickCustomizePane 讓使用者直接自定義快捷功能表。 QuickCustomizePaneCMFCPopupMenu當使用者按兩下工具列按鈕以直接編輯時出現的 。

您的應用程式應該在 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();

傳回值

如果相關聯的功能表按鈕處於QuickCustomize模式,則為TRUE;否則為 FALSE。 如果快捷功能表未與 CMFCToolBarMenuButton相關聯,這個方法也會傳回 FALSE。

備註

在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::SetAutoDestroy

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 類別