CMFCRibbonBar
類別
CMFCRibbonBar
類別會實作類似於 Office 2007 中使用的功能區列。
如需詳細資訊,請參閱 Visual Studio 安裝位置下之 mfc
資料夾中的原始程式碼。 例如: %ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\atlmfc\src\mfc
。
語法
class CMFCRibbonBar : public CPane
成員
公用建構函式
名稱 | 描述 |
---|---|
CMFCRibbonBar::CMFCRibbonBar |
預設建構函式。 |
公用方法
備註
Microsoft 在發行 Microsoft Office 2007 的同時,也引進 Office Fluent 功能區。 這個功能區列不只是新的控制件。 它代表一種全新的使用者介面典範。 功能區是一個窗格,其中包含一組稱為分類的索引標籤。 每個分類在邏輯上分割為功能區面板,每個面板可以包含各種控制項和命令按鈕。
出現在功能區列的項目會展開和收合,以充分利用可用空間。 例如,如果功能區面板的空間不足以顯示項目,則會變成功能表按鈕,以快顯功能表來顯示子項目。 功能區列就像靜態 (非浮動) 控制列,可停駐在框架頂端。
您可以使用 CMFCRibbonStatusBar
類別來實作類似於 Office 2007 中使用的狀態列。 功能區類別包含一組 功能區面板(並顯示)。 每個功能區面板都包含一或多個衍生自 CMFCRibbonBaseElement
的功能區專案。
如需如何將功能區列新增至現有 MFC 應用程式的詳細資訊,請參閱 逐步解說:更新 MFC Scribble 應用程式。
繼承階層架構
需求
標頭: afxribbonbar.h
CMFCRibbonBar::ActivateContextCategory
啟動已經可見的內容分類。
BOOL ActivateContextCategory(UINT uiContextID);
參數
uiContextID
[in]內容類別目錄標識碼。
傳回值
TRUE
如果找到並啟動 具有 uiContextID
的內容類別,則為 ,否則 FALSE
為 。
CMFCRibbonBar::AddCategory
建立並初始化功能區列的新功能區類別。
CMFCRibbonCategory* AddCategory(
LPCTSTR lpszName,
UINT uiSmallImagesResID,
UINT uiLargeImagesResID,
CSize sizeSmallImage= CSize(16,
16),
CSize sizeLargeImage= CSize(32,
32),
int nInsertAt = -1,
CRuntimeClass* pRTI= NULL);
參數
lpszName
[in]功能區類別的名稱。
uiSmallImagesResID
[in]功能區類別之小型映像清單的資源標識碼。
uiLargeImagesResID
[in]功能區類別之大型映像清單的資源標識碼。
sizeSmallImage
[in]指定功能區類別的小型影像大小。
sizeLargeImage
[in]指定功能區類別的大型影像大小。
nInsertAt
[in]類別位置以零起始的索引。
pRTI
[in]類別運行時間類別的CMFCRibbonCategory
指標,可在運行時間動態建立功能區類別。
傳回值
如果方法成功,則為新功能區類別的指標;否則為 NULL
。
備註
pRTI
如果 參數不是 NULL
,則會使用運行時間類別動態建立新的功能區類別。
範例
下列範例示範如何在 類別中使用 AddCategory
CMFCRibbonBar
方法。
// Add "Home" category.
// CMFCRibbonBar m_wndRibbonBar
strTemp.LoadString(IDS_RIBBON_HOME);
CMFCRibbonCategory *pCategoryHome = m_wndRibbonBar.AddCategory(strTemp,
IDB_WRITESMALL, IDB_WRITELARGE);
CMFCRibbonBar::AddContextCategory
建立並初始化功能區列的新內容類別。
CMFCRibbonCategory* AddContextCategory(
LPCTSTR lpszName,
LPCTSTR lpszContextName,
UINT uiContextID,
AFX_RibbonCategoryColor clrContext,
UINT uiSmallImagesResID,
UINT uiLargeImagesResID,
CSize sizeSmallImage = CSize(16,
16),
CSize sizeLargeImage = CSize(32,
32),
CRuntimeClass* pRTI = NULL);
參數
lpszName
[in]類別的名稱。
lpszContextName
[in]內容類別標題的名稱。
uiContextID
[in]內容標識碼。
clrContext
[in]內容類別標題的色彩。
uiSmallImagesResID
[in]內容類別之小型影像的資源標識碼。
uiLargeImagesResID
[in]內容類別目錄大型影像的資源標識碼。
sizeSmallImage
[in]小型影像的大小。
sizeLargeImage
[in]大型影像的大小。
pRTI
[in]運行時間類別的指標。
傳回值
新建立類別的指標,如果 NULL
CreateObject
的 方法 pRTI
無法建立指定的類別,則為 。
備註
使用此函式來新增內容類別目錄。 內容類別是一種特殊的類別類型,可根據目前的應用程式內容,在運行時間顯示或隱藏。 例如,當使用者選取物件時,您可以顯示具有內容類別的特殊索引標籤,以用來變更特定選取的物件。
內容類別的色彩可以是下列其中一個值:
AFX_CategoryColor_None
AFX_CategoryColor_Red
AFX_CategoryColor_Orange
AFX_CategoryColor_Yellow
AFX_CategoryColor_Green
AFX_CategoryColor_Blue
AFX_CategoryColor_Indigo
AFX_CategoryColor_Violet
CMFCRibbonBar::AddMainCategory
為功能區列建立新的主要功能區類別。
CMFCRibbonMainPanel* AddMainCategory(
LPCTSTR lpszName,
UINT uiSmallImagesResID,
UINT uiLargeImagesResID,
CSize sizeSmallImage = CSize(16,
16),
CSize sizeLargeImage = CSize(32,
32));
參數
lpszName
[in]主要功能區類別的名稱。
uiSmallImagesResID
[in]小型映像的資源標識碼。
uiLargeImagesResID
[in]大型映像的資源標識碼。
sizeSmallImage
[in]小型影像的大小。
sizeLargeImage
[in]大型影像的大小。
傳回值
如果方法成功,則為新主要功能區類別的指標;否則為 NULL
。
備註
如果主要功能區類別已經存在,則會將其刪除。
範例
下列範例示範如何在 類別中使用 AddMainCategory
CMFCRibbonBar
方法。
// m_wndRibbonBar is declared as a protected member variable
// CMFCRibbonBar m_wndRibbonBar.
// strTemp is a CString variable.
strTemp.LoadString(IDS_RIBBON_FILE);
CMFCRibbonMainPanel *pMainPanel = m_wndRibbonBar.AddMainCategory(strTemp,
IDB_FILESMALL, IDB_FILELARGE);
CMFCRibbonBar::AddPrintPreviewCategory
在功能區列上建立列印預覽類別。
CMFCRibbonCategory* AddPrintPreviewCategory();
傳回值
如果方法成功,則為新功能區類別的指標;否則為 NULL
。
備註
這個方法會建立功能區類別,以及它為了提供列印預覽所需的控件。
CMFCRibbonBar::AddQATOnlyCategory
建立快速存取工具列功能區類別。
CMFCRibbonCategory* AddQATOnlyCategory(
LPCTSTR lpszName,
UINT uiSmallImagesResID,
CSize sizeSmallImage = CSize(16,
16));
參數
lpszName
[in]類別的名稱。
uiSmallImagesResID
[in]類別目錄影像清單的資源識別碼。
sizeSmallImage
[in]類別中功能區元素的影像大小。
傳回值
如果方法成功,則為新類別的指標;否則為 NULL
。
備註
快速存取工具列功能區類別僅適用於快速存取工具列自定義對話框。
CMFCRibbonBar::AddToTabs
將指定的功能區專案加入至功能區列的索引標籤數據列。
void AddToTabs(CMFCRibbonBaseElement* pElement);
參數
pElement
[in]功能區專案的指標。
備註
功能區項目位於任何系統按鈕之前。
CMFCRibbonBar::CMFCRibbonBar
建構並初始化 CMFCRibbonBar
物件。
CMFCRibbonBar(BOOL bReplaceFrameCaption = TRUE);
參數
bReplaceFrameCaption
[in] TRUE
表示功能區列取代主框架視窗的標題; FALSE
以在主框架視窗的標題下找出功能區列。
備註
CMFCRibbonBar::Create
建立功能區列的視窗。
BOOL Create(
CWnd* pParentWnd,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP,
UINT nID = AFX_IDW_RIBBON_BAR);
參數
pParentWnd
[in]功能區列之父視窗的指標。
dwStyle
[in]新視窗樣式的邏輯組合。
nID
[in]新視窗的標識碼。
傳回值
TRUE
如果已建立視窗,則為 ;否則 FALSE
為 。
備註
範例
下列範例示範如何使用 Create
類別的 CMFCRibbonBar
方法。
// CMFCRibbonBar m_wndRibbonBar
m_wndRibbonBar.Create(this, WS_CHILD | CBRS_TOP);
CMFCRibbonBar::CreateEx
建立功能區列的視窗。
BOOL CreateEx(
CWnd* pParentWnd,
DWORD dwCtrlStyle = 0,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP,
UINT nID = AFX_IDW_RIBBON_BAR);
參數
pParentWnd
[in]功能區列之父視窗的指標。
dwCtrlStyle
[in]不使用此參數。
dwStyle
[in]新視窗樣式的邏輯組合。
nID
[in]新視窗的標識碼。
傳回值
TRUE
如果已建立視窗,則為 ;否則 FALSE
為 。
備註
CMFCRibbonBar::DeactivateKeyboardFocus
關閉功能區列上的所有按鍵提示控件。
void DeactivateKeyboardFocus(BOOL bSetFocus = TRUE);
參數
bSetFocus
[in] TRUE
將焦點設定為功能區列的父視窗。
備註
CMFCRibbonBar::DrawMenuImage
繪製功能表按鈕的影像。
BOOL DrawMenuImage(
CDC* pDC,
const CMFCToolBarMenuButton* pMenuItem,
const CRect& rectImage);
參數
pDC
[in]功能表按鈕之裝置內容的指標。
pMenuItem
[in]工具列功能表按鈕的指標。
rectImage
[in]功能表按鈕的顯示矩形。
傳回值
TRUE
如果繪製影像,則為 ;否則 FALSE
為 。
備註
CMFCRibbonBar::DWMCompositionChanged
啟用或停用桌面視窗管理員 (DWM) 組合時,調整功能區列的顯示。
virtual void DWMCompositionChanged();
備註
CMFCRibbonBar::EnableKeyTips
啟用或停用功能區列的按鍵提示功能。
void EnableKeyTips(BOOL bEnable = TRUE);
參數
bEnable
[in] TRUE
表示啟用按鍵提示功能; FALSE
以停用按鍵提示功能。
備註
當您啟用此功能時,當使用者按下 ALT 或 F10 鍵時,就會顯示按鍵提示。 當使用者按下 ALT 鍵時,按鍵提示會顯示延遲 200 毫秒。 此延遲允許執行快捷方式,讓按下 的 ALT 鍵不會干擾包含 ALT 鍵的其他組合。
CMFCRibbonBar::EnablePrintPreview
啟用或停用 列印預覽 功能。
void EnablePrintPreview(BOOL bEnable = TRUE);
參數
bEnable
[in] TRUE
表示啟用 列印預覽 功能; FALSE
若要停用 列印預覽 功能。
備註
如果 bEnable
為 FALSE
且列印預覽類別存在,則會將其刪除。
預設 會啟用列印預覽 功能。
CMFCRibbonBar::EnableToolTips
啟用或停用功能區列上的工具提示和選擇性工具提示描述。
void EnableToolTips(
BOOL bEnable = TRUE,
BOOL bEnableDescr = TRUE);
參數
bEnable
[in] TRUE
表示在功能區列上啟用工具提示; FALSE
以停用功能區列上的工具提示。
bEnableDescr
[in] TRUE
表示在工具提示上啟用工具提示描述; FALSE
表示停用工具提示上的工具提示描述。
備註
參數 bEnable
會決定當滑鼠停留在功能區專案上時,是否顯示工具提示。 參數 bEnableDescr
會決定是否使用工具提示文字顯示其他描述性文字。
CMFCRibbonBar::FindByData
如果功能區專案具有指定的數據和可見性,則擷取功能區專案的指標。
CMFCRibbonBaseElement* FindByData(
DWORD_PTR dwData,
BOOL bVisibleOnly = TRUE) const;
參數
dwData
[in]與功能區專案相關聯的數據。
bVisibleOnly
[in] TRUE
只搜尋可見的功能區元素; FALSE
以搜尋所有功能區元素。
傳回值
如果功能區元素具有指定的數據和可見性,則為指標;否則 NULL
為 。
備註
功能區元素是您可以新增至功能區的任何控件,例如功能區按鈕或功能區類別,或功能區滑桿。
CMFCRibbonBar::FindByID
擷取具有指定命令標識碼和搜尋值之功能區專案的指標。
CMFCRibbonBaseElement* FindByID(
UINT uiCmdID,
BOOL bVisibleOnly = TRUE,
BOOL bExcludeQAT = FALSE) const;
參數
uiCmdID
[in]功能區專案的命令標識碼。
bVisibleOnly
[in] TRUE
只搜尋可見的功能區元素; FALSE
以搜尋所有功能區元素。
bExcludeQAT
[in] TRUE
表示從搜尋中排除快速存取工具列元素;否則為 FALSE
。
傳回值
如果功能區元素具有指定的命令標識碼和搜尋值,則為指標;否則為 NULL
。
備註
功能區元素是可新增至功能區的任何功能區控件,例如功能區按鈕或功能區類別,或功能區滑桿。
一般而言,可以有多個具有相同命令標識符的功能區專案。 如果您想要取得使用指定命令識別碼之所有功能區專案的指標,請使用 CMFCRibbonBar::GetElementsByID
方法。
CMFCRibbonBar::FindCategoryIndexByData
擷取包含指定數據的功能區類別目錄索引。
int FindCategoryIndexByData(DWORD dwData) const;
參數
dwData
[in]與功能區類別相關聯的數據。
傳回值
如果方法成功,則為功能區類別目錄的以零起始的索引;否則為 -1。
CMFCRibbonBar::ForceRecalcLayout
調整功能區列和父視窗中所有專案的版面配置,並重新繪製整個視窗。
void ForceRecalcLayout();
備註
CMFCRibbonBar::GetActiveCategory
擷取使用中功能區類別目錄的指標。
CMFCRibbonCategory* GetActiveCategory() const;
傳回值
作用中功能區類別的指標;如果沒有任何類別為使用中, 則 NULL
為 。
備註
如果類別具有焦點,則為作用中。 根據預設,使用中類別是功能區列左側的第一個類別。
當使用者按下應用程式按鈕且不能是使用中類別時,就會顯示主要類別。
CMFCRibbonBar::GetApplicationButton
擷取應用程式按鈕的指標。
CMFCRibbonApplicationButton* GetApplicationButton() const;
傳回值
應用程式按鈕的指標;如果尚未設定按鈕,則 NULL
為 。
CMFCRibbonBar::GetCaptionHeight
擷取功能區列標題區域的高度。
int GetCaptionHeight() const;
傳回值
功能區列標題區域的高度,以像素為單位。
備註
CMFCRibbonBar::GetCategory
擷取指定索引處功能區類別目錄的指標。
CMFCRibbonCategory* GetCategory(int nIndex) const;
參數
nIndex
[in]功能區列中功能區類別清單中功能區類別目錄的以零起始的索引。
傳回值
位於指定索引之功能區類別目錄的指標;否則, NULL
如果 nIndex
超出範圍則為 。
CMFCRibbonBar::GetCategoryCount
擷取功能區列中的功能區類別數目。
int GetCategoryCount() const;
傳回值
功能區列中的功能區類別數目。
CMFCRibbonBar::GetCategoryHeight
擷取類別的高度。
int GetCategoryHeight() const;
傳回值
類別的高度。
備註
類別高度包含類別索引標籤的高度。
CMFCRibbonBar::GetCategoryIndex
擷取指定功能區類別目錄的索引。
int GetCategoryIndex(CMFCRibbonCategory* pCategory) const;
參數
pCategory
[in]功能區類別目錄的指標。
傳回值
所 pCategory
指定功能區類別目錄的以零起始的索引;如果找不到功能區類別,則為 -1。
CMFCRibbonBar::GetContextName
擷取內容標識碼所指定之內容類別標題的名稱。
BOOL GetContextName(
UINT uiContextID,
CString& strName) const;
參數
uiContextID
[in]功能區類別內容識別碼。
strName
[out]內容類別標題的名稱。
傳回值
TRUE
如果方法成功,則為 ;否則, FALSE
如果 uiContextID
為零或找不到內容類別標題,則為 。
CMFCRibbonBar::GetDroppedDown
擷取目前已卸除的功能區專案。
virtual CMFCRibbonBaseElement* GetDroppedDown();
傳回值
目前已卸除的功能區專案;如果 NULL
目前未卸除任何功能區專案,則為 。
備註
CMFCRibbonBar::GetElementsByID
擷取具有特定命令標識碼之所有功能區元素的指標陣列。
void GetElementsByID(
UINT uiCmdID,
CArray<CMFCRibbonBaseElement*,CMFCRibbonBaseElement*>& arButtons);
參數
uiCmdID
[in]功能區專案的命令標識碼。
arButtons
[out]功能區元素的指標陣列。
備註
多個功能區元素可以有相同的命令標識碼,因為某些功能區元素可以複製到快速存取工具列。
CMFCRibbonBar::GetHideFlags
擷取旗標,指出有多少功能區列可見。
DWORD GetHideFlags() const;
傳回值
指出有多少功能區列可見的旗標。
備註
下表列出傳回值之旗標的可能組合:
旗標 | 描述 |
---|---|
AFX_RIBBONBAR_HIDE_ELEMENTS |
功能區列會垂直最小化,而且只會顯示類別索引標籤、主按鈕和快速存取工具列。 |
AFX_RIBBONBAR_HIDE_ALL |
功能區列的寬度小於最小寬度,而且完全隱藏。 |
CMFCRibbonBar::GetItemIDsList
擷取功能區列上指定功能區元素集合的命令標識碼。
void GetItemIDsList(CList<UINT, UINT>& lstItems,
BOOL bHiddenOnly = FALSE) const;
參數
lstItems
[out]功能區列中所含功能區元素的命令標識符清單。
bHiddenOnly
[in] TRUE
表示排除顯示的功能區專案; FALSE
以在功能區列中包含所有功能區元素。
備註
CMFCRibbonBar::GetKeyboardNavigationLevel
當使用者按下功能區列中包含的按鍵提示時,擷取目前的瀏覽層級。
int GetKeyboardNavigationLevel() const;
傳回值
當使用者按下功能區列上所包含的按鍵提示時,目前的瀏覽層級。 下表列出可能的傳回值:
值 | Description |
---|---|
-1 | 不會顯示按鍵提示。 |
0 | 顯示按鍵提示。 |
1 | 使用者已按下顯示的按鍵提示。 |
備註
CMFCRibbonBar::GetKeyboardNavLevelCurrent
擷取功能區列上的目前鍵盤瀏覽物件。
CObject* GetKeyboardNavLevelCurrent() const;
傳回值
功能區列上的目前鍵盤瀏覽物件;否則 NULL
,如果沒有物件目前顯示按鍵提示,則為 。
備註
目前顯示按鍵提示的物件是目前的鍵盤瀏覽物件。
CMFCRibbonBar::GetKeyboardNavLevelParent
擷取功能區列上的父鍵盤瀏覽物件。
CObject* GetKeyboardNavLevelParent() const;
傳回值
功能區列上的父鍵盤瀏覽物件;否則 NULL
為 。
備註
當使用者按下功能區列上的按鍵提示時,目前的鍵盤瀏覽物件會變成父鍵盤瀏覽物件。
CMFCRibbonBar::GetMainCategory
擷取主要功能區類別目錄的指標。
CMFCRibbonCategory* GetMainCategory() const;
傳回值
主要功能區類別目錄的指標。
備註
主要功能區類別包含主要功能區面板。
CMFCRibbonBar::GetQATCommandsLocation
擷取快速存取工具列之命令區段的顯示矩形。
CRect GetQATCommandsLocation() const;
傳回值
快速存取工具列之命令區段的顯示矩形。
備註
顯示矩形的命令區段不包含自定義按鈕。
CMFCRibbonBar::GetQATDroppedDown
擷取快速存取工具列上功能區專案的指標,其快捷功能表已下拉式清單。
CMFCRibbonBaseElement* GetQATDroppedDown();
傳回值
快速存取工具列上功能區元素的指標,其快捷功能表已下拉式清單。
備註
CMFCRibbonBar::GetQuickAccessCommands
擷取快速存取工具列上功能區元素的命令標識符清單。
void GetQuickAccessCommands(CList<UINT,UINT>& lstCommands);
參數
lstCommands
[out]快速存取工具列上功能區元素的命令標識符清單。
備註
清單不包含控制分隔符的功能區專案。
CMFCRibbonBar::GetQuickAccessToolbarLocation
擷取快速存取工具列的顯示矩形。
CRect GetQuickAccessToolbarLocation() const;
傳回值
快速存取工具列的顯示矩形。
備註
CMFCRibbonBar::GetTabTrancateRatio
擷取類別索引標籤的顯示寬度縮小百分比。
int GetTabTrancateRatio() const;
傳回值
類別索引標籤的顯示寬度縮小百分比大小。
備註
當功能區列上沒有足夠的寬度時,類別索引標籤的寬度會降低。
CMFCRibbonBar::GetTooltipFixedWidthLargeImage
擷取功能區列的大型工具提示寬度。
int GetTooltipFixedWidthLargeImage() const;
傳回值
以像素為單位的大型工具提示寬度。
備註
如果工具提示寬度的大小大為 0,則寬度會有所不同。
CMFCRibbonBar::GetTooltipFixedWidthRegular
擷取功能區列的工具提示寬度一般大小。
int GetTooltipFixedWidthRegular() const;
傳回值
工具提示寬度的一般大小,以像素為單位。
備註
如果工具提示寬度的一般大小為 0,則寬度會有所不同。
CMFCRibbonBar::GetVisibleCategoryCount
擷取功能區列上可見的類別數目。
int GetVisibleCategoryCount() const;
傳回值
功能區列上可見的類別數目。
備註
CMFCRibbonBar::HideAllContextCategories
隱藏功能區列上的所有內容類別。
BOOL HideAllContextCategories();
傳回值
TRUE
如果至少隱藏了一個內容類別,則為 ;否則為 FALSE
。
備註
如果內容類別為使用中,使用中類別會重設為類別清單中的第一個可見類別。
CMFCRibbonBar::HideKeyTips
隱藏功能區列上的所有按鍵提示。
void HideKeyTips();
備註
CMFCRibbonBar::HitTest
擷取點位置所指定之功能區專案的指標。
virtual CMFCRibbonBaseElement* HitTest(
CPoint point,
BOOL bCheckActiveCategory= FALSE,
BOOL bCheckPanelCaption= FALSE);
參數
point
[in]功能區列座標中點的位置。
bCheckActiveCategory
[in] TRUE
搜尋使用中類別; FALSE
不要搜尋使用中的類別。
bCheckPanelCaption
[in] TRUE
以測試功能區面板的標題,其中包含其中的位置; FALSE
不要使用位於功能區面板中的點來測試功能區面板的標題。 如需詳細資訊,請參閱一節。
傳回值
位於指定點之功能區專案的指標;否則 NULL
,如果點不在功能區元素中。
備註
除非 參數為 TRUE
,否則不會測試bCheckActiveCategory
位於其中之點的功能區面板標題。
CMFCRibbonBar::IsKeyTipEnabled
指出是否啟用按鍵提示功能。
BOOL IsKeyTipEnabled() const;
傳回值
TRUE
如果已啟用按鍵提示功能,則為 ;否則 FALSE
為 。
CMFCRibbonBar::IsMainRibbonBar
指出功能區列是否為主要功能區列。
virtual BOOL IsMainRibbonBar() const;
傳回值
一律傳回 TRUE
。
備註
根據預設,這個方法一律會傳 TRUE
回 。 覆寫此方法,指出功能區列是否為主要功能區列。
CMFCRibbonBar::IsPrintPreviewEnabled
指出是否 啟用列印預覽 功能。
BOOL IsPrintPreviewEnabled() const;
傳回值
TRUE
如果已開啟列印預覽功能,則為 ,否則FALSE
為 。
CMFCRibbonBar::IsQATEmpty
指出快速存取工具列是否包含命令按鈕。
BOOL IsQATEmpty() const;
傳回值
TRUE
如果快速存取工具列包含命令按鈕,則為 ;否則 FALSE
為 。
備註
CMFCRibbonBar::IsQuickAccessToolbarOnTop
指出快速存取工具列位於功能區列上方或下方。
BOOL IsQuickAccessToolbarOnTop() const;
傳回值
TRUE
如果快速存取工具列位於功能區列上,則為 ; FALSE
如果快速存取工具列位於功能區列底下, 則為 。
CMFCRibbonBar::IsReplaceFrameCaption
指出功能區列是否取代或位於主框架視窗的標題下。
BOOL IsReplaceFrameCaption() const;
傳回值
TRUE
如果功能區列取代主框架視窗的標題,則為 ; FALSE
如果功能區列位於主框架視窗的標題下,則為 。
CMFCRibbonBar::IsShowGroupBorder
指出位於功能區列上的按鈕群組是否顯示群組框線。
virtual BOOL IsShowGroupBorder(CMFCRibbonButtonsGroup* pGroup) const;
參數
pGroup
[in]不使用此參數。
傳回值
一律傳回 FALSE
。
備註
根據預設,這個方法一律會傳 FALSE
回 。 覆寫此方法,指出位於功能區列上的按鈕群組是否顯示群組框線。
CMFCRibbonBar::IsToolTipDescrEnabled
指出是否啟用工具提示描述。
BOOL IsToolTipDescrEnabled() const;
傳回值
TRUE
如果已開啟工具提示描述,則為 ; FALSE
如果停用工具提示描述,則為 。
備註
工具提示描述是隨工具提示文字一起顯示的其他描述性文字。
CMFCRibbonBar::IsToolTipEnabled
指出功能區列是否啟用或停用工具提示。
BOOL IsToolTipEnabled() const;
傳回值
TRUE
如果已啟用工具提示,則為 ; FALSE
如果工具提示已停用,則為 。
CMFCRibbonBar::IsTransparentCaption
指出是否為 Windows Aero 色彩設定設定顯示器。
BOOL IsTransparentCaption() const;
傳回值
TRUE
如果色彩配置是 Windows Aero,則為 ;否則 FALSE
為 。
備註
CMFCRibbonBar::OnClickButton
這個方法會保留,以便與現有的應用程式回溯相容性,而且不應該用於新的開發。
virtual void OnClickButton(
CMFCRibbonButton* pButton,
CPoint point);
參數
pButton
[in]已按下按鈕的指標。
point
[in]不使用此參數。
備註
CMFCRibbonBar::OnEditContextMenu
virtual void OnEditContextMenu(
CMFCRibbonRichEditCtrl* pEdit,
CPoint point);
參數
[輸入] pEdit
[輸入] point
\
備註
CMFCRibbonBar::OnRTLChanged
當版面配置變更方向時,由架構呼叫。
virtual void OnRTLChanged(BOOL bIsRTL);
參數
bIsRTL
[in] TRUE
如果版面設定由右至左則為 ; FALSE
如果版面配置由左至右。
備註
這個方法會針對新的版面配置方向調整功能區列上所有控件的配置。
CMFCRibbonBar::OnSetAccData
此方法在 Framework 內部,並非要從使用者程式代碼呼叫。
BOOL OnSetAccData(long lVal);
參數
long lVal
可存取物件的索引。
傳回值
S_OK
如果成功,則為 ;否則 FALSE
為或 S_FALSE
。
備註
CMFCRibbonBar::OnShowRibbonContextMenu
virtual BOOL OnShowRibbonContextMenu(
CWnd* pWnd,
int x,
int y,
CMFCRibbonBaseElement* pHit);
參數
[輸入] pWnd
[輸入] x
[輸入] y
[輸入] pHit
\
傳回值
備註
CMFCRibbonBar::OnShowRibbonQATMenu
virtual BOOL OnShowRibbonQATMenu(
CWnd* pWnd,
int x,
int y,
CMFCRibbonBaseElement* pHit);
參數
[輸入] pWnd
[輸入] x
[輸入] y
[輸入] pHit
\
傳回值
備註
CMFCRibbonBar::OnSysKeyDown
當使用者按下 F10 鍵或按住 ALT 鍵,然後按下另一個按鍵時,由架構呼叫。
BOOL OnSysKeyDown(
CFrameWnd* pFrameWnd,
WPARAM wParam,
LPARAM lParam);
參數
pFrameWnd
[in]功能區列上層主框架視窗的指標。
wParam
[in]所按下按鍵的虛擬按鍵碼。
lParam
[in]按下按鍵時,鍵盤狀態旗標。
傳回值
TRUE
如果已處理擊鍵事件,則為 ;否則 FALSE
為 。
備註
CMFCRibbonBar::OnSysKeyUp
當使用者放開 F10 鍵、ALT 鍵或按住 ALT 鍵時按下的按鍵時,由架構呼叫。
BOOL OnSysKeyUp(
CFrameWnd* pFrameWnd,
WPARAM wParam,
LPARAM lParam);
參數
pFrameWnd
[in]功能區列上層主框架視窗的指標。
wParam
[in]正在發行之金鑰的虛擬金鑰碼。
lParam
[in]不使用此參數。
傳回值
TRUE
如果已處理擊鍵事件,則為 ;否則 FALSE
為 。
備註
CMFCRibbonBar::PopTooltip
從檢視中移除工具提示。
void PopTooltip();
備註
CMFCRibbonBar::PreTranslateMessage
判斷指定的訊息是否由功能區列處理。
virtual BOOL PreTranslateMessage(MSG* pMsg);
參數
pMsg
[in]訊息的指標。
傳回值
TRUE
如果訊息是由功能區列處理,則為 ;否則 FALSE
為 。
備註
CMFCRibbonBar::RecalcLayout
調整功能區列上所有控制件的配置。
virtual void RecalcLayout();
備註
配置調整之後,功能區列的顯示會更新。
CMFCRibbonBar::RemoveAllCategories
從功能區列刪除所有功能區類別。
void RemoveAllCategories();
備註
此方法會從記憶體和類別清單中刪除所有功能區類別。
CMFCRibbonBar::RemoveAllFromTabs
從索引標籤區域中移除所有功能區項目。
void RemoveAllFromTabs();
備註
如果您想要使用 CMFCRibbonBar::AddToTabs
方法來移除新增至索引標籤區域的所有元素,請使用此函式。
CMFCRibbonBar::RemoveCategory
從功能區列中刪除指定的功能區類別。
BOOL RemoveCategory(int nIndex);
參數
nIndex
[in]功能區列中所含功能區類別清單中類別目錄的以零起始的索引。
傳回值
TRUE
如果已刪除指定的功能區類別,則為 ;否則 FALSE
為 。
備註
指定的功能區類別會從記憶體和類別清單中刪除。
CMFCRibbonBar::SetActiveCategory
將指定的功能區類別設定為使用中類別。
BOOL SetActiveCategory(
CMFCRibbonCategory* pCategory,
BOOL bForceRestore= FALSE);
參數
pCategory
[in]功能區列中包含的功能區類別。
bForceRestore
[in] TRUE
如果功能區列最小化,則為最大化; FALSE
如果功能區列最小化,則會在彈出視窗中顯示使用中的類別。
傳回值
TRUE
如果指定的類別已設定為使用中的類別,則為 ;否則 FALSE
為 。
備註
主要功能區類別不能是使用中的類別。
如果未顯示 所 pCategory
指定的類別,就無法將它設定為使用中的類別。
CMFCRibbonBar::SetActiveMDIChild
將功能區列上屬於多文檔介面 (MDI) 子視窗的系統按鈕關聯至指定的 MDI 子視窗。
void SetActiveMDIChild(CWnd* pWnd);
參數
pWnd
[in]MDI 子視窗的指標。
備註
CMFCRibbonBar::SetApplicationButton
將應用程式功能區按鈕指派給功能區列。
void SetApplicationButton(
CMFCRibbonApplicationButton* pButton,
CSize sizeButton);
參數
pButton
[in]應用程式功能區按鈕的指標。
sizeButton
[in]應用程式功能區按鈕的大小。
備註
應用程式功能區按鈕是位於功能區控件左上角的大型圓角按鈕。
範例
下列範例示範如何在 類別中使用 SetApplicationButton
CMFCRibbonBar
方法。
// Init main button:
// CMFCRibbonApplicationButton m_MainButton
m_MainButton.SetImage(IDB_MAIN);
m_MainButton.SetText(_T("\nf"));
m_MainButton.SetToolTipText(strTemp);
// CMFCRibbonBar m_wndRibbonBar
m_wndRibbonBar.SetApplicationButton(&m_MainButton, CSize(45, 45));
CMFCRibbonBar::SetElementKeys
設定具有指定命令識別碼之所有功能區專案的索引鍵提示。
BOOL SetElementKeys(
UINT uiCmdID,
LPCTSTR lpszKeys,
LPCTSTR lpszMenuKeys= NULL);
參數
uiCmdID
[in]功能區專案的命令標識碼。
lpszKeys
[in]按鍵提示。
lpszMenuKeys
[in]功能表按鍵提示。
傳回值
TRUE
如果至少設定了一個功能區專案的索引鍵提示,則為 ;否則 FALSE
為 。
備註
選擇性功能表按鍵提示適用於具有開啟快捷功能表之分割按鈕的功能區元素。
CMFCRibbonBar::SetKeyboardNavigationLevel
設定鍵盤瀏覽層級,因為使用者按下功能區列中包含的按鍵提示。
void SetKeyboardNavigationLevel(
CObject* pLevel,
BOOL bSetFocus = TRUE);
參數
pLevel
[in]目前鍵盤瀏覽物件的指標。
bSetFocus
[in] TRUE
將鍵盤焦點設定為功能區列。
備註
當使用者按下 ALT 或 F10 鍵時,功能區列的鍵盤流覽就會啟動。 使用者按下功能區列上的按鍵提示,以選取下一個瀏覽層級。 用戶可以按逸出鍵返回上一個瀏覽層級。
CMFCRibbonBar::SetMaximizeMode
當多文檔介面 (MDI) 子視窗的視窗大小進入或離開最大化狀態時,調整功能區列。
void SetMaximizeMode(
BOOL bMax,
CWnd* pWnd = NULL);
參數
bMax
[in] TRUE
表示在功能區列上顯示 MDI 子視窗的系統按鈕; FALSE
表示從功能區列移除 MDI 子視窗的系統按鈕。
pWnd
[in]功能區列主框架視窗的指標。
備註
當 MDI 子視窗最大化時,功能區列會在索引標籤中顯示 MDI 子視窗的系統按鈕。
CMFCRibbonBar::SetQuickAccessCommands
將一或多個功能區項目加入至快速存取工具列。
void SetQuickAccessCommands(
const CList<UINT,UINT>& lstCommands,
BOOL bRecalcLayout=TRUE);
參數
lstCommands
[in]要放在快速存取工具列上的命令清單。
bRecalcLayout
[in] TRUE
如果您想要在新增功能區元素之後重新繪製功能區; FALSE
否則。
範例
下列範例示範如何在 類別中使用 SetQuickAccessCommands
CMFCRibbonBar
方法。
// Add quick access commands to the toolbar
CList<UINT, UINT> lstQATCmds;
lstQATCmds.AddTail(ID_FILE_NEW);
lstQATCmds.AddTail(ID_FILE_OPEN);
lstQATCmds.AddTail(ID_FILE_SAVE);
lstQATCmds.AddTail(ID_FILE_PRINT_DIRECT);
// CMFCRibbonBar m_wndRibbonBar
m_wndRibbonBar.SetQuickAccessCommands(lstQATCmds);
CMFCRibbonBar::SetQuickAccessDefaultState
將快速存取工具列設定為默認狀態。
void SetQuickAccessDefaultState(const CMFCRibbonQuickAccessToolBarDefaultState& state);
參數
state
[in]快速存取工具列默認狀態。
備註
快速存取工具列狀態包含命令清單及其可見度。
範例
下列範例示範如何在 類別中使用 SetQuickAccessDefaultState
CMFCRibbonBar
方法。
CMFCRibbonQuickAccessToolBarDefaultState *qaToolBarState =
new CMFCRibbonQuickAccessToolBarDefaultState();
qaToolBarState->AddCommand(ID_FILE_NEW, true);
qaToolBarState->AddCommand(ID_FILE_OPEN, true);
// CMFCRibbonBar m_wndRibbonBar
m_wndRibbonBar.SetQuickAccessDefaultState(*qaToolBarState);
CMFCRibbonBar::SetQuickAccessToolbarOnTop
將快速存取工具列放置在功能區列上方或下方。
void SetQuickAccessToolbarOnTop(BOOL bOnTop);
參數
bOnTop
[in] TRUE
表示將快速存取工具列放置在功能區列上方; FALSE
以將快速存取工具列放置在功能區列下方。
CMFCRibbonBar::SetTooltipFixedWidth
設定功能區列的一般和大型工具提示固定寬度。
void SetTooltipFixedWidth(
int nWidthRegular,
int nWidthLargeImage);
參數
nWidthRegular
[in]固定大小工具提示的寬度,以像素為單位。
nWidthLargeImage
[in]大型固定大小工具提示的寬度,以像素為單位。
備註
將參數設定為 0 會導致對應的寬度不同。
CMFCRibbonBar::ShowCategory
顯示或隱藏指定的功能區分類。
void ShowCategory(
int nIndex,
BOOL bShow=TRUE);
參數
nIndex
[in]功能區類別目錄的索引。
bShow
[in]如果 TRUE
為 ,則顯示功能區類別;否則,請隱藏功能區類別。
CMFCRibbonBar::ShowContextCategories
顯示或隱藏具有指定識別碼的內容分類。
void ShowContextCategories(
UINT uiContextID,
BOOL bShow=TRUE);
參數
uiContextID
[in]內容類別目錄標識碼。
bShow
[in]如果 TRUE
為 ,則顯示具有指定標識符的類別;否則,請隱藏具有指定標識符的類別。
CMFCRibbonBar::ShowKeyTips
顯示功能區列上每個功能區元素的索引鍵提示。
void ShowKeyTips();
備註
CMFCRibbonBar::ToggleMimimizeState
在最小化和最大化狀態之間切換功能區列。
void ToggleMimimizeState();
備註
方法名稱的拼字錯誤是已知問題。
在最小化狀態,功能區控制項是隱藏的,並且只顯示索引標籤。 當使用者按一下索引標籤時,功能區控制項顯示為快顯視窗。 當使用者按一下離開或執行命令,視窗會關閉。
CMFCRibbonBar::TranslateChar
判斷功能區列是否處理指定的擊鍵字元碼。
virtual BOOL TranslateChar(UINT nChar);
參數
nChar
[in]用戶按鍵字元碼。
傳回值
TRUE
如果功能區列已處理字元碼,則為 ;否則 FALSE
為 。
備註
按鍵提示功能可讓使用者使用鍵盤流覽功能區列。
CMFCRibbonBar::GetFocused
傳回具有焦點的項目。
virtual CMFCRibbonBaseElement* GetFocused();
傳回值
焦點專案或 NULL
的指標。
備註
CMFCRibbonBar::IsWindows7Look
指出功能區是否有 Windows 7 外觀(小型矩形應用程式按鈕)。
BOOL IsWindows7Look() const;
傳回值
TRUE
如果功能區具有 Windows 7 外觀,則為 ;否則 FALSE
為 。
備註
CMFCRibbonBar::LoadFromResource
已多載。 從應用程式資源載入功能區列。
virtual BOOL LoadFromResource(
UINT uiXMLResID,
LPCTSTR lpszResType = RT_RIBBON,
HINSTANCE hInstance = NULL);
virtual BOOL LoadFromResource(
LPCTSTR lpszXMLResID,
LPCTSTR lpszResType = RT_RIBBON,
HINSTANCE hInstance = NULL);
參數
uiXMLResID
使用功能區列資訊指定 XML 字串的資源識別碼。
lpszResType
指定位於 uiXMLResID
的資源類型。
hInstance
處理可執行檔包含資源的模組。 如果 hInstance
為 NULL
,則系統會從用來建立目前進程的模組載入資源。
lpszXMLResID
使用功能區列資訊指定資源識別碼(以字串形式)。
傳回值
TRUE
如果載入成功,則為 ;否則 FALSE
為 。
備註
CMFCRibbonBar::SaveToXMLBuffer
將功能區列儲存至緩衝區。
UINT SaveToXMLBuffer(LPBYTE* ppBuffer) const;
參數
ppBuffer
當此函式傳回時, ppBuffer
指向這個方法所配置的緩衝區,並包含 XML 格式的功能區列資訊。
傳回值
如果成功,則為 TRUE
,否則為 FALSE
。
備註
CMFCRibbonBar::SaveToXMLFile
將功能區列儲存至 XML 檔案。
BOOL SaveToXMLFile(LPCTSTR lpszFilePath) const;
參數
lpszFilePath
指定輸出檔。
傳回值
如果成功,則為 TRUE
,否則為 FALSE
。
備註
CMFCRibbonBar::SetWindows7Look
啟用或停用功能區的 Windows 7 外觀(小型矩形應用程式按鈕)。
void SetWindows7Look(
BOOL bWindows7Look,
BOOL bRecalc = TRUE);
參數
bWindows7Look
TRUE
會設定 Windows 7 外觀; FALSE
否則。
bRecalc
TRUE
重新計算功能區配置; FALSE
否則。
備註
另請參閱
階層架構圖表
類別
CPane
類
CMFCRibbonCategory
類
CMFCRibbonPanel
類
CMFCRibbonBaseElement
類
逐步解說:更新 MFC Scribble 應用程式