CMFCToolBar
類別
類別 CMFCToolBar
類似於 CToolBar
Class,但提供使用者介面功能的額外支援。 這包括一般工具列、含作用中影像的工具列、大圖示、頁面巡覽區按鈕、鎖定工具列、Rebar 控制項、影像下方文字、背景影像和索引標籤式工具列。 CMFCToolBar
類別的內建支援也包括工具列和功能表的使用者自訂、工具列和功能表之間的拖放、下拉式方塊按鈕、編輯方塊按鈕、色彩選擇器和縮合按鈕。
如需詳細資訊,請參閱 Visual Studio 安裝中的原始程式碼,例如 %ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\atlmfc\src\mfc
。
語法
class CMFCToolBar : public CMFCBaseToolBar
成員
公用建構函式
名稱 | 描述 |
---|---|
CMFCToolBar::CMFCToolBar |
預設建構函式。 |
CMFCToolBar::~CMFCToolBar |
解構函式。 |
公用方法
受保護的方法
名稱 | 描述 |
---|---|
CMFCToolBar::AllowShowOnList |
判斷工具列是否顯示在 [自定義] 對話方塊的 [工具列] 窗格清單中。 |
CMFCToolBar::CalcMaxButtonHeight |
計算工具列中按鈕的最大高度。 |
CMFCToolBar::DoPaint |
重新繪出工具列。 |
CMFCToolBar::DrawButton |
重新繪出工具列按鈕。 |
CMFCToolBar::DrawSeparator |
在工具列上重新繪出分隔符。 |
CMFCToolBar::OnUserToolTip |
當按鈕的工具提示即將顯示時,由架構呼叫。 |
資料成員
名稱 | 描述 |
---|---|
CMFCToolBar::m_bDontScaleImages |
指定是否要以高 DPI 模式縮放工具列影像。 |
CMFCToolBar::m_dblLargeImageRatio |
指定大型影像維度(高度或寬度)與一般影像維度之間的比率。 |
備註
若要將 CMFCToolBar
物件併入您的應用程式,請遵循下列步驟:
將
CMFCToolBar
物件新增至主框架視窗。當您處理主框架視窗的WM_CREATE訊息時,請呼叫
CMFCToolBar::Create
或CMFCToolBar::CreateEx
來建立工具列並指定其樣式。呼叫
CBasePane::EnableDocking
以指定停駐樣式。
若要插入特殊按鈕,例如下拉式方塊或下拉式工具列,請在父資源中保留虛擬按鈕,並使用 取代運行 CMFCToolBar::ReplaceButton
時間的虛擬按鈕。 如需詳細資訊,請參閱 逐步解說:將控件放在工具欄上。
CMFCToolBar
是 MFC 連結庫類別類別、CMFCPopupMenuBar
類別和CMFCDropDownToolBar
類別的基類。CMFCMenuBar
範例
下例示範如何在 CMFCToolBar
類別中使用各種方法。 此範例示範如何設定工具列視窗卷標的文字、設定框線、設定窗格的樣式,以及啟用 工具列結尾出現的 [新增] 或 [移除按鈕 ] 按鈕。 此代碼段是 IE 示範範例的一部分。
CMFCToolBar m_wndToolBar;
m_wndToolBar.SetWindowText(_T("Standard"));
m_wndToolBar.SetBorders();
//------------------------------------
// Remove toolbar gripper and borders:
//------------------------------------
m_wndToolBar.SetPaneStyle(m_wndToolBar.GetPaneStyle() &
~(CBRS_GRIPPER | CBRS_BORDER_TOP | CBRS_BORDER_BOTTOM | CBRS_BORDER_LEFT | CBRS_BORDER_RIGHT));
m_wndToolBar.EnableCustomizeButton(TRUE, ID_VIEW_CUSTOMIZE, _T("Customize..."));
需求
標頭: afxtoolbar.h
繼承階層架構
CMFCToolBar
CMFCToolBar::AddBasicCommand
將功能表命令新增至用戶開啟功能表時一律顯示的命令清單。
static void __stdcall AddBasicCommand(UINT uiCmd);
參數
uiCmd
[in]指定要新增的命令。
備註
開啟功能表時,一律會顯示基本命令。 當使用者選擇檢視最近使用的命令時,這個方法就有意義。
CMFCToolBar::SetBasicCommands
使用方法可設定使用者開啟功能表時一律顯示的命令清單。 CMFCToolBar::GetBasicCommands
使用方法來擷取應用程式所使用的基本命令清單。
CMFCToolBar::AddCommandUsage
遞增一個與指定命令相關聯的計數器。
static void __stdcall AddCommandUsage(UINT uiCommand);
參數
uiCommand
[in]指定要遞增的命令計數器。
備註
當使用者選取功能表項時,架構會呼叫此方法。
架構會使用命令計數器來顯示最近使用的功能表項。
這個方法會使用 CMFCCmdUsageCount::AddCmd
方法遞增命令計數器。
CMFCToolBar::AddToolBarForImageCollection
將來自使用者介面資源的影像新增至應用程式中影像的集合。
static BOOL __stdcall AddToolBarForImageCollection(
UINT uiResID,
UINT uiBmpResID=0,
UINT uiColdResID=0,
UINT uiMenuResID=0,
UINT uiDisabledResID=0,
UINT uiMenuDisabledResID=0);
參數
uiResID
[in]要載入影像之工具列的資源標識碼。
uiBmpResID
[in]具有工具列影像之位圖的資源標識碼。
uiColdResID
[in]具有「冷」工具欄影像之位圖的資源標識符。
uiMenuResID
[in]具有功能表影像的點陣圖資源標識碼。
uiDisabledResID
[in]具有停用工具列影像之位圖的資源標識碼。
uiMenuDisabledResID
[in]具有已停用功能表影像之位圖的資源標識碼。
傳回值
TRUE
如果方法成功,則為 ; FALSE
如果 uiResID
或 uiBmpResID
未指定有效的資源,或發生另一個錯誤,則為 。
備註
呼叫此方法以載入具有工具列影像的點陣圖,並將它新增至工具欄影像的集合。 這個方法會建立暫存工具列物件,並呼叫 CMFCToolBar::LoadToolBar
。
CMFCToolBar::AdjustLayout
重新計算工具列的大小和位置。
virtual void AdjustLayout();
備註
建立工具列以重新計算其大小和位置時,呼叫這個方法。
每次必須變更工具列的配置時,架構都會呼叫這個方法。 例如,當用戶移動另一個控件列、調整應用程式視窗大小或自定義工具列時,版面配置必須變更。
覆寫此方法,在衍生自 CMFCToolbar
的類別中提供您自己的動態配置。
CMFCToolBar::AdjustSize
重新計算工具列的大小。
void AdjustSize();
備註
此方法可確保工具列符合父框架的界限。 如果工具列沒有父框架,這個方法就不會執行任何動作。
如果工具列的父代不是 CMFCReBar
物件,此方法CMFCToolBar::AdjustLayout
會呼叫這個方法,以重新計算大小。
CMFCToolBar::AllowChangeTextLabels
指定是否可以在工具列按鈕的影像下顯示文字標籤。
virtual BOOL AllowChangeTextLabels() const;
傳回值
TRUE
如果允許在影像下方顯示文字標籤,則為 ;否則 FALSE
為 。
備註
自定義對話框會呼叫此方法,以判斷是否要在所選工具列的 [工具欄] 頁面上啟用 [顯示文字標籤] 複選框。
預設實作會傳回 TRUE
。
覆寫衍生自 CMFCToolBar
的物件中的這個方法,並在您不想讓用戶決定是否要在影像下的工具列按鈕上顯示文字標籤時傳回 FALSE
。
CMFCToolBar::AllowShowOnList
判斷工具列是否顯示在 [自定義] 對話方塊的 [工具列] 窗格的工具列清單中。
virtual BOOL AllowShowOnList() const;
傳回值
TRUE
如果工具列物件可以在工具列自訂頁面上的清單框中顯示,則為 ;否則 FALSE
為 。
備註
架構會呼叫這個方法,以判斷工具列自定義頁面上的清單是否應該包含衍生自 CMFCToolBar
的特定物件。
預設實作一律會傳 TRUE
回 。 當您不希望工具列出現在自訂對話框中的工具列清單中時,請覆寫此方法。
CMFCToolBar::AreTextLabels
指定影像底下的文字標籤目前是否顯示在工具列按鈕上。
BOOL AreTextLabels() const;
傳回值
TRUE
如果工具列按鈕顯示影像下方的文字標籤,則為 ;否則 FALSE
為 。
備註
使用 CMFCToolBar::EnableTextLabels
來指定是否顯示文字。 預設值是 FALSE
。 呼叫 CMFCToolBar::AllowChangeTextLabels
以指定使用者是否可以在自訂對話框中變更此設定。
CMFCToolBar::AutoGrayInactiveImages
啟用或停用自動產生非使用中的按鈕影像。
static void AutoGrayInactiveImages(
BOOL bEnable=TRUE,
int nGrayImagePercentage=0,
BOOL bRedrawAllToolbars=TRUE);
參數
bEnable
[in]布爾值,指定是否將非使用中的影像變暗。 如果此參數為 TRUE
,則非使用中的影像會呈現暗灰色。 否則,非作用中的影像不會變暗。
nGrayImagePercentage
[in]指定非使用中影像的亮度百分比。 如果 bEnable
為 FALSE
,則會忽略此值。
bRedrawAllToolbars
[in]布爾值,指定是否要重新繪製應用程式中的所有工具列。 如果此參數為 TRUE
,這個方法會重新繪製所有工具列。
備註
如果 bEnable
為 TRUE
,架構會使用 nGrayImagePercentage
從一般映射產生非使用中的映像。 否則,您必須使用 CMFCToolBar::GetColdImages
方法提供一組非使用中影像。 預設會停用這個選項。
如需有關 nGrayImagePercentage
參數的詳細資訊,請參閱CMFCToolBarImages::GrayImages
。
CMFCToolBar::ButtonToIndex
傳回這個工具列中指定 CMFCToolBarButton
之 Class 物件的索引。
int ButtonToIndex(const CMFCToolBarButton* pButton) const;
參數
pButton
[in]工具列按鈕物件的指標。
傳回值
pButton
工具列按鈕內部清單中的 索引;如果指定的按鈕不在此工具列上,則為 -1。
CMFCToolBar::CalcFixedLayout
計算工具列的水準大小。
virtual CSize CalcFixedLayout(
BOOL bStretch,
BOOL bHorz);
參數
bStretch
[in] TRUE
表示將工具列延展至父框架的大小。
bHorz
[in] TRUE
以水準方向設定工具列; FALSE
以垂直方向設定工具列。
傳回值
CSize
物件,指定工具列的大小。
備註
這個方法會使用 CMFCToolBar::CalcLayout
方法來計算工具列的大小。 如果 bStretch
為 TRUE
,LM_STRETCH
則會傳遞 參數的dwMode
旗標。 如果 bHorz
為 TRUE
,LM_HORZ
則會傳遞旗標。
如需使用此方法的範例,請參閱VisualStudioDemo範例。
CMFCToolBar::CalcMaxButtonHeight
計算工具列中按鈕的最大高度。
virtual int CalcMaxButtonHeight();
傳回值
按鈕的最大高度。
備註
此方法會計算工具列上所有工具列按鈕之間的最大高度。 高度可能會因目前工具列停駐狀態等因素而有所不同。
覆寫衍生自 CMFCToolBar
的類別中的這個方法,以提供您自己的高度計算。
CMFCToolBar::CalcSize
架構在版面配置計算程式中呼叫。
virtual CSize CalcSize(BOOL bVertDock);
參數
bVertDock
[in] TRUE
表示指定工具列垂直停駐; FALSE
表示指定工具列水準停駐。
傳回值
CSize
物件,指定工具列上按鈕的整體大小。
備註
此方法會考慮影響每個按鈕大小的屬性,例如文字標籤的區域和框線大小。
如果工具列沒有按鈕,這個方法會使用 CMFCToolBar::GetButtonSize
方法傳回單一按鈕的保留大小。
CMFCToolBar::CanBeClosed
指定使用者是否可以關閉工具列。
virtual BOOL CanBeClosed() const;
傳回值
TRUE
如果使用者可以關閉工具列,則為 ;否則 FALSE
為 。
備註
架構會呼叫此方法,以判斷使用者是否可以關閉工具列。 如果方法傳 TRUE
回 ,架構會在工具列的系統功能表中啟用 SC_CLOSE
命令,而且使用者可以使用自定義對話框中工具列清單中的複選框來關閉工具列。
預設實作會傳回 TRUE
。 覆寫衍生自 CMFCToolBar
的類別中的這個方法,使用戶無法關閉的工具列物件。
CMFCToolBar::CanBeRestored
判斷系統是否可以在自定義之後,將工具列還原至其原始狀態。
virtual BOOL CanBeRestored() const;
傳回值
TRUE
如果可以從應用程式資源還原工具列,則為 ;否則 FALSE
為 。
備註
架構會呼叫這個方法,以判斷工具列是否可以在自定義之後傳回至其原始狀態。 原始狀態會從應用程式資源載入。
如果 CanBeRestored
傳回 ,自定義對話方塊的 [工具列] 頁面會啟用所選工具列的 [重設] 按鈕。TRUE
如果載入工具列的原始資源識別碼為非零,則預設實作會 TRUE
傳回 。 通常,只能還原使用者定義的工具列。
您可以覆寫 方法, CanBeRestored
以在衍生類別中自定義此行為。
CMFCToolBar::CanFocus
指定窗格是否可以接收焦點。
virtual BOOL CanFocus() const;
傳回值
這個方法會傳 FALSE
回 。
備註
這個方法會覆寫基類實作 , CBasePane::CanFocus
因為工具欄對象無法接收焦點。
CMFCToolBar::CanHandleSiblings
決定是否工具列和其同層級位於相同的窗格上。
BOOL CanHandleSiblings();
傳回值
TRUE
如果工具列具有同層級,且工具列及其同層級位在相同的窗格上,則為 ;否則 FALSE
為 。
備註
內部 CMFCCustomizeButton::CreatePopupMenu
方法會呼叫此方法,以判斷如何顯示 [自定義 ] 彈出視窗。 如果此方法傳TRUE
回 ,則架構會在一列上顯示 [顯示按鈕],或在 [兩列] 按鈕上顯示按鈕。
您通常不需要使用這個方法。 若要啟用工具列上出現的 [ 自定義 ] 按鈕,請呼叫 CMFCToolBar::EnableCustomizeButton
方法。 若要在一個資料列上啟用 [顯示按鈕] 或 [在兩個資料列上顯示按鈕] 按鈕,請呼叫 CMFCToolBar::SetSiblingToolBar
。
CMFCToolBar::CleanUpImages
釋放配置給工具列影像的系統資源。
static void CMFCToolBar::CleanUpImages();
備註
架構會在應用程式關閉時呼叫此方法。
CMFCToolBar::CleanUpLockedImages
釋放配置給鎖定工具列影像的系統資源。
void CleanUpLockedImages();
備註
當您的應用程式可視化樣式變更時,請呼叫此方法。 如需使用此方法的範例,請參閱VisualStudioDemo範例。
CMFCToolBar::CommandToIndex
傳回工具列中具有指定命令標識碼的按鈕索引。
int CommandToIndex(
UINT nIDFind,
int iIndexFirst=0) const;
參數
nIDFind
[in]指定命令標識碼。
iIndexFirst
[in]指定要從開始的初始索引。
傳回值
如果方法成功,則工具列按鈕的以零起始的索引;如果沒有具有指定標識碼的按鈕,則為 -1。
備註
CMFCToolBar
對象會維護工具列上按鈕的內部清單。 呼叫此函式,以擷取清單中指定按鈕命令標識碼的按鈕索引。
如果 iIndex
大於 0,這個方法會忽略工具列上索引小於 iIndex
的任何按鈕。
CMFCToolBar::Create
建立 CMFCToolBar
物件。
virtual BOOL Create(
CWnd* pParentWnd,
DWORD dwStyle=AFX_DEFAULT_TOOLBAR_STYLE,
UINT nID=AFX_IDW_TOOLBAR);
參數
pParentWnd
[in]工具列之父視窗的指標。
dwStyle
[in]工具列樣式。 如需樣式清單,請參閱 Windows SDK 中的工具列控件和按鈕樣式 。
nID
[in]工具列子視窗的識別碼。
傳回值
TRUE
如果此方法成功,則為 ;否則 FALSE
為 。
備註
這個方法會建立控件列,並將它附加至工具列。 它會使用TBSTYLE_FLAT樣式建立控件列。 如果您要不同的控制項列樣式,請呼叫 CMFCToolBar::CreateEx
。
CMFCToolBar::CreateEx
CMFCToolBar
建立使用其他樣式選項的物件,例如大型圖示。
virtual BOOL CreateEx(
CWnd* pParentWnd,
DWORD dwCtrlStyle=TBSTYLE_FLAT,
DWORD dwStyle=AFX_DEFAULT_TOOLBAR_STYLE,
CRect rcBorders=CRect(1,
1,
1,
1),
UINT nID=AFX_IDW_TOOLBAR);
參數
pParentWnd
[in]工具列之父視窗的指標。
dwCtrlStyle
[in]用於建立內嵌控件列物件的其他樣式。
dwStyle
[in]工具列樣式。 如需適當樣式的清單,請參閱 工具列控件和按鈕樣式 。
rcBorders
[in] CRect
物件,指定工具列視窗框線的寬度。
nID
[in]工具列子視窗的識別碼。
傳回值
如果此方法成功,則為非零;否則為 0。
備註
這個方法會建立控件列,並將它附加至工具列。
呼叫這個方法, CMFCToolBar::Create
而不是當您想要提供特定樣式時。 例如,將 設定dwCtrlStyle
TBSTYLE_FLAT
| TBSTYLE_TRANSPARENT
為 以建立類似於 Internet Explorer 4 所使用的工具列的工具列。
範例
下列範例示範如何使用 CreateEx
類別的 CMFCToolBar
方法。 此代碼段是 IE 示範範例的一部分。
CMFCToolBar m_wndToolBar;
// The this pointer points to CMainFrame class which extends the CFrameWnd class.
if (!m_wndToolBar.CreateEx(this, TBSTYLE_TRANSPARENT) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME, uiToolbarColdID, uiMenuID,
FALSE /* Not locked */, 0, 0, uiToolbarHotID))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
CMFCToolBar::Deactivate
停用工具列。
virtual void Deactivate();
備註
此方法會從醒目提示的工具列按鈕移除焦點,以停用工具列。 當工具列失去焦點或終結時,架構會呼叫此方法。
CMFCToolBar::DoPaint
重新繪出工具列。
virtual void DoPaint(CDC* pDC);
參數
pDC
[in]裝置內容的指標。
備註
當必須重新繪製工具列的一部分時,架構會呼叫這個方法。
覆寫這個方法,以自定義衍生自 CMFCToolBar
的對象外觀。
CMFCToolBar::DrawButton
重新繪出工具列按鈕。
virtual BOOL DrawButton(
CDC* pDC,
CMFCToolBarButton* pButton,
CMFCToolBarImages* pImages,
BOOL bHighlighted,
BOOL bDrawDisabledImages);
參數
pDC
[in]裝置內容的指標。
pButton
[in]要繪製之按鈕的指標。
pImages
[in]工具欄影像的指標。
bHighlighted
[in] TRUE
如果反白顯示按鈕,則為 ;否則 FALSE
為 。
bDrawDisabledImages
[in] TRUE
如果停用的按鈕呈現暗灰色,則為 ;否則 FALSE
為 。
傳回值
TRUE
如果重新繪製按鈕,則為 ; FALSE
如果隱藏按鈕,則為 。
備註
方法 CMFCToolBar::DrawButton
會在必須重新繪製工具列按鈕時呼叫此方法。
如果您想要自定義工具列上按鈕的外觀,請覆寫此方法。
CMFCToolBar::DrawSeparator
在工具列上重新繪出分隔符。
virtual void DrawSeparator(
CDC* pDC,
const CRect& rect,
BOOL bHorz);
參數
pDC
[in]裝置內容的指標。
rect
[in]以像素為單位繪製分隔符之位置的周框。
bHorz
[in] TRUE
如果分隔符為水準, FALSE
則為垂直分隔符。
備註
CMFCToolBar::DoPaint
會針對具有TBBS_SEPARATOR
樣式的每個CMFCToolBar::DrawSeparator
物件呼叫這個方法,而不是針對這些按鈕呼叫CMFCToolBar::DrawButton
。
覆寫衍生自 CMFCToolBar
的類別中的這個方法,以自定義工具列上的分隔符外觀。 默認實作會呼叫 CMFCVisualManager::OnDrawSeparator
來繪製由目前可視化管理員決定其外觀的分隔符。
CMFCToolBar::EnableCustomizeButton
啟用或停用工具列上出現的 [自定義] 按鈕。
void EnableCustomizeButton(
BOOL bEnable,
int iCustomizeCmd,
const CString& strCustomizeText,
BOOL bQuickCustomize=TRUE);
void EnableCustomizeButton(
BOOL bEnable,
int iCustomizeCmd,
UINT uiCustomizeTextResId,
BOOL bQuickCustomize=TRUE);
參數
bEnable
[in]啟用或停用 [自定義] 按鈕。
iCustomizeCmd
[in][自訂] 按鈕的命令識別碼。
strCustomizeText
[in][自訂] 按鈕的文字標籤。
uiCustomizeTextResId
[in]自訂按鈕標籤的資源字串識別碼。
bQuickCustomize
[in]啟用或停用 按鈕下拉式清單功能表上的 [新增或移除按鈕 ] 選項。
備註
如果 iCustomizeCmd
為 -1,當多個工具列按鈕不符合工具列區域時,架構會顯示 [自定義] 按鈕。 按鈕會顯示雙左指箭號或箭號,表示有更多按鈕。
如果 iCustomizeCmd
指定有效的命令標識碼,且 bEnable
為 TRUE
,則一律會顯示 [自定義] 按鈕。 按鈕具有小型向下箭號,並開啟包含命令的功能表。 此命令會使用 所 strCustomizeText
指定的文字標籤。 如果 bQuickCustomize
也是 TRUE
,功能表會顯示 [ 新增] 或 [移除按鈕] 選項。
架構會在 指定的 iCustomizeCmd
專案之前,動態地將任何不符合工具列區域中的按鈕新增至功能表。 形箭號會顯示在向下箭號旁邊。
CMFCToolBar::EnableDocking
允許將窗格停駐到主框架。
virtual void EnableDocking(DWORD dwAlignment);
參數
dwAlignment
[in]指定要啟用的停駐對齊方式。
備註
這個方法會將數據成員設定CBasePane::m_dwControlBarStyle
為 AFX_CBRS_FLOAT
,CBasePane::EnableDocking
以擴充基類實作。 此方法接著會傳遞 dwAlignment
至基類實作。
CMFCToolBar::EnableLargeIcons
啟用或停用工具列按鈕上的大型圖示。
void EnableLargeIcons(BOOL bEnable);
參數
bEnable
[in] TRUE
若要啟用大型圖示, FALSE
則為停用大型圖示。
備註
默認會啟用大型圖示。
CMFCToolBar::EnableQuickCustomization
啟用或停用工具列的快速自定義,讓使用者可以按下 Alt 鍵,並將按鈕拖曳至新位置。
static void EnableQuickCustomization(BOOL bEnable=TRUE);
參數
bEnable
[in] TRUE
若要啟用快速自定義, FALSE
請停用快速自定義。
CMFCToolBar::EnableReflections
啟用或停用命令反映。
void EnableReflections(BOOL bEnable = TRUE);
參數
bEnable
[in] TRUE
表示啟用命令反映; FALSE
以停用命令反映。
備註
呼叫此方法,針對包含內嵌控件的工具列按鈕啟用命令反映,例如下拉式方塊。
如需命令反映的詳細資訊,請參閱 TN062:Windows 控件的訊息反映。
CMFCToolBar::EnableTextLabels
啟用或停用工具列按鈕影像底下的文字標籤。
void EnableTextLabels(BOOL bEnable=TRUE);
參數
bEnable
TRUE
如果文字標籤出現在工具列按鈕影像下方,則為 ;否則 FALSE
為 。
備註
如果啟用文字標籤,工具列上的所有按鈕都會放大,以提供要顯示在影像下之標籤的空間。 自訂對話框在 [工具列] 頁面上有 [顯示文字標籤] 複選框。 當使用者選取工具列並檢查此選項時,架構會呼叫 EnableTextLabels
選取的工具列。 您可以從 傳回 FALSE
,以停用衍生自 CMFCToolBar
CMFCToolBar::AllowChangeTextLabels
之物件的複選框。
CMFCToolBar::FromHandlePermanent
擷取包含指定視窗句柄之 物件的指標 CMFCToolBar
。
static CMFCToolBar* __stdcall FromHandlePermanent(HWND hwnd);
參數
hwnd
[in]要尋找的視窗句柄。
傳回值
包含指定之視窗句柄的物件指標 CMFCToolBar
,如果 NULL
不存在對應的 CMFCToolBar
物件,則為 。
備註
這個共用方法會檢查應用程式中每個工具列,以取得 CMFCToolBar
包含指定視窗句柄的物件。
CMFCToolBar::GetAllButtons
傳回工具列中按鈕的唯讀清單。
const CObList& GetAllButtons() const;
傳回值
Class 物件的常數參考CObList
,其中包含 Class 物件的集合CMFCToolBarButton
。
CMFCToolBar::GetAllToolbars
傳回應用程式中所有工具列的唯讀清單。
static const CObList& GetAllToolbars();
傳回值
Class 物件的 const 參考CObList
,其中包含 物件的集合CMFCToolBar
。
CMFCToolBar::GetBasicCommands
傳回應用程式中定義之基本命令的唯讀清單。
static const CList<UINT,UINT>& GetBasicCommands();
傳回值
Class 物件的 const 參考CList
,其中包含基本命令的集合。
備註
呼叫 CMFCToolBar::AddBasicCommand
或 CMFCToolBar::SetBasicCommands
來新增基本命令。
CMFCToolBar::GetButton
傳回位於指定索引處 CMFCToolBarButton
之 Class 物件的指標。
CMFCToolBarButton* GetButton(int iIndex) const;
參數
iIndex
[in]指定要傳回之按鈕的索引。
傳回值
如果工具列按鈕存在,則為指標;如果沒有 NULL
這類按鈕,則為 。
CMFCToolBar::GetButtonInfo
傳回指定索引處按鈕的命令標識碼、樣式和影像索引。
void GetButtonInfo(
int nIndex,
UINT& nID,
UINT& nStyle,
int& iImage) const;
參數
nIndex
[in]指定工具列上按鈕清單中的按鈕索引。
nID
[out]按鈕的命令標識碼。
nStyle
[out]按鈕的樣式。
iImage
[out]按鈕影像的索引。
備註
方法 GetButtonInfo
會在指定的索引處尋找工具列按鈕,並擷取按鈕的命令標識碼、樣式和影像索引。
如果指定索引處的按鈕不存在,則架構會在方法傳回時,將 和 設定nID
nStyle
為 0,並將 設定iImage
為 -1。
CMFCToolBar::GetButtonSize
傳回工具列上每個按鈕的維度。
CSize GetButtonSize() const;
傳回值
CSize
Class 物件,指定工具列上每個按鈕的維度。
備註
呼叫 CMFCToolBar::SetSizes
或 CMFCToolBar::SetLockedSizes
以設定工具列上每個按鈕的維度。
CMFCToolBar::GetButtonStyle
傳回位於指定索引處之工具列按鈕的目前樣式。
UINT GetButtonStyle(int nIndex) const;
參數
nIndex
[in]指定工具列按鈕的索引。
傳回值
值,指定工具列按鈕的樣式。 . 如需可能樣式的清單,請參閱 ToolBar控件樣式 。
備註
呼叫 CMFCToolBar::SetButtonStyle
以設定工具列按鈕的樣式
CMFCToolBar::GetButtonText
傳回具有指定索引之按鈕的文字標籤。
CString GetButtonText(int nIndex) const;
void GetButtonText(
int nIndex,
CString& rString) const;
參數
nIndex
[in]工具列按鈕的索引。
rString
[out]工具列按鈕的標籤文字。
傳回值
工具列按鈕的標籤文字。
備註
呼叫 CMFCToolBar::SetButtonText
或 CMFCToolBar::SetToolBarBtnText
以設定文字標籤。
CMFCToolBar::GetColdImages
傳回應用程式中冷工具列按鈕影像集合的指標。
static CMFCToolBarImages* GetColdImages();
傳回值
冷工具列按鈕影像集合的指標。
備註
冷影像是使用者未與工具列按鈕互動時所使用的影像。 呼叫 CMFCToolBar::LoadBitmapEx
或 CMFCToolBar::LoadBitmap
以載入冷映像。
CMFCToolBar::GetColumnWidth
傳回工具列按鈕的寬度。
virtual int GetColumnWidth() const;
傳回值
值,指定工具列按鈕的寬度。
備註
架構會呼叫此方法來計算工具列配置。 覆寫衍生類別中的這個方法,以指定工具列的不同數據行寬度。
CMFCToolBar::GetCommandButtons
傳回應用程式中所有工具列中具有指定命令標識碼的按鈕清單。
static int GetCommandButtons(
UINT uiCmd,
CObList& listButtons);
參數
uiCmd
[in]按鈕的命令標識碼。
listButtons
[out]Class 物件的參考CObList
,這個物件會接收工具列按鈕的清單。
傳回值
具有指定命令標識碼的按鈕數目。
CMFCToolBar::GetCount
傳回工具列上的按鈕和分隔符數目。
int GetCount() const;
傳回值
工具列上的按鈕和分隔符數目。
CMFCToolBar::GetCustomizeButton
擷取與工具列相關聯之物件的指標 CMFCCustomizeButton
。
CMFCCustomizeButton* GetCustomizeButton();
傳回值
與工具列相關聯的對象指標 CMFCCustomizeButton
。
備註
這個方法會 擷取工具列結尾出現的 [自定義 ] 按鈕。 使用 方法, CMFCToolBar::EnableCustomizeButton
將 [ 自定義 ] 按鈕新增至工具列。
您可以呼叫 CMFCToolBar::IsExistCustomizeButton
方法來判斷工具列是否包含有效的 CMFCCustomizeButton
物件。
CMFCToolBar::GetDefaultImage
傳回具有指定命令標識碼之工具列按鈕的預設影像索引。
static int GetDefaultImage(UINT uiID);
參數
uiID
[in]指定按鈕的命令識別碼。
傳回值
共用影像清單中的工具列影像索引。
備註
使用此共用方法來擷取具有指定命令標識碼之工具列按鈕的預設影像索引。 傳回值是應用程式中所有工具列按鈕影像共用集合中的索引。 CMFCToolBar::GetImages
呼叫 方法以取得這個集合的指標。
CMFCToolBar::GetDisabledImages
傳回應用程式中用於停用工具列按鈕之影像集合的指標。
static CMFCToolBarImages* __stdcall GetDisabledImages();
傳回值
已停用工具列按鈕影像集合的指標。
備註
使用 CMFCToolBarEditBoxButton
Class 和 CMFCToolBar::LoadBitmap
方法載入已停用的工具列按鈕影像。
CMFCToolBar::GetDisabledMenuImages
傳回應用程式中用於停用功能表按鈕之影像集合的指標。
static CMFCToolBarImages* __stdcall GetDisabledMenuImages();
傳回值
停用功能表影像集合的指標。
備註
使用 CMFCToolBarEditBoxButton
Class 方法載入已停用的影像。
CMFCToolBar::GetDroppedDownMenu
擷取目前顯示其子功能表之功能表按鈕物件的指標。
CMFCToolBarMenuButton* GetDroppedDownMenu(int* pIndex = NULL) const;
參數
pIndex
[out]接收工具列按鈕集合中按鈕的索引。
傳回值
顯示其子選單的功能表按鈕物件的指標,如果沒有 NULL
選單顯示其子選單,則為 。
備註
如果這個方法傳回非 Null 值,而且 pIndex
不是 NULL
,所指向 pIndex
的值會設定為工具列按鈕集合中功能表按鈕的索引。
CMFCToolBar::GetGrayDisabledButtons
指定停用按鈕的影像是一般按鈕影像的暗灰色版本,還是取自停用按鈕影像的集合。
BOOL GetGrayDisabledButtons() const;
傳回值
TRUE
表示將已停用按鈕的影像變暗; FALSE
表示從已停用影像的集合中取得影像。
備註
用來 CMFCToolBar::SetGrayDisabledButtons
切換已停用影像集合中的暗灰色影像和影像。
CMFCToolBar::GetHighlightedButton
傳回目前反白顯示之工具列按鈕的指標。
CMFCToolBarButton* GetHighlightedButton() const;
傳回值
工具列按鈕物件的指標;如果未反白顯示任何按鈕,則 NULL
為 。
備註
如果工具列按鈕具有鍵盤焦點,則會反白顯示。 如果此應用程式中的工具列按鈕處於熱追蹤狀態,也會反白顯示工具列按鈕(如需詳細資訊,請參閱 CMFCToolBar::GetHotBorder
和 CMFCToolBar::SetHotBorder
),而且當沒有任何工具列按鈕或功能表項具有鍵盤焦點時,滑鼠會指向它。
CMFCToolBar::GetHotBorder
判斷工具列按鈕是否為 熱追蹤。 如果按鈕是熱追蹤的,當滑鼠在按鈕上移動時會反白顯示。
BOOL GetHotBorder() const;
傳回值
TRUE
如果工具列按鈕為熱追蹤,則為 ;否則為 FALSE
。
備註
根據預設,工具列按鈕會進行熱追蹤。
CMFCToolBar::GetHotTextColor
傳回醒目提示工具列按鈕的文字色彩。
static COLORREF GetHotTextColor();
傳回值
COLORREF
值,表示目前反白顯示的文字色彩。
備註
呼叫 CMFCToolBar::SetHotTextColor
以設定醒目提示工具列按鈕的新文字色彩。
CMFCToolBar::GetHwndLastFocus
傳回視窗的句柄,該視窗的輸入焦點就在工具列之前。
HWND GetHwndLastFocus() const;
傳回值
不是衍生自 CMFCBaseToolBar
Class 的視窗句柄,先前具有輸入焦點;如果沒有 NULL
這類視窗,則為 。
備註
CMFCToolBar
當控件收到輸入焦點時,它會將句柄儲存至失去焦點的視窗,以便稍後還原它。
CMFCToolBar::GetIgnoreSetText
指定是否忽略設定按鈕標籤的呼叫。
BOOL GetIgnoreSetText() const;
傳回值
TRUE
如果忽略對設定按鈕標籤的呼叫;否則為 FALSE
。
備註
CMFCToolBar::GetImages
傳回應用程式中預設按鈕影像集合的指標。
static CMFCToolBarImages* GetImages();
傳回值
Class 物件的指標CMFCToolBarImages
,其中包含應用程式中所有工具列的預設影像集合。
備註
這個共用方法可讓您存取應用程式所有預設工具列影像的集合。 CMFCToolBar::LoadBitmap
呼叫 方法,將影像新增至集合。
CMFCToolBar::GetImageSize
傳回工具列按鈕影像的目前大小。
CSize GetImageSize() const;
傳回值
CSize
Class 物件,表示目前工具列按鈕影像的大小。
CMFCToolBar::GetImagesOffset
傳回索引位移,用來在工具列按鈕影像的全域清單中尋找此工具列的工具列按鈕影像。
int GetImagesOffset() const;
傳回值
工具列影像的索引位移。
備註
所有工具列預設影像都會儲存在全域 CMFCToolBarImages
類別 清單中。 工具列中每個按鈕的影像會連續儲存在該清單中。 若要計算影像的索引,請將工具列中按鈕的索引新增至該工具列按鈕影像清單開頭的位移。
呼叫 CMFCToolBar::ButtonToIndex
以取得工具列按鈕的索引,指定按鈕的指標。
呼叫 CMFCToolBar::GetImages
以取得工具列影像集合的指標。
CMFCToolBar::GetInvalidateItemRect
擷取必須在指定索引處重新繪製按鈕的工作區區域。
virtual void GetInvalidateItemRect(
int nIndex,
LPRECT lpRect) const;
參數
nIndex
[in]要擷取工作區之按鈕的索引。
lpRect
[out]接收工作區區域之 物件的指標 RECT
。
備註
參數 lpRect
不得為 NULL
。 如果提供的索引中沒有任何按鈕存在, lpRect
則 RECT
會收到初始化為零的物件。
CMFCToolBar::GetItemID
傳回指定索引處工具列按鈕的命令標識碼。
UINT GetItemID(int nIndex) const;
參數
nIndex
[in]指定工具列按鈕的索引。
傳回值
工具列按鈕的命令標識元;如果具有指定索引的按鈕不存在,則為零。
CMFCToolBar::GetItemRect
傳回位於指定索引處按鈕的周框。
virtual void GetItemRect(
int nIndex,
LPRECT lpRect) const;
參數
nIndex
[in]指定工具列按鈕的索引。
lpRect
[out]物件的指標 CRect
,接收影像周框的座標。
備註
CRect
如果指定索引處的按鈕不存在,點會設定為 0 的物件lpRect
。
範例
下列範例示範如何使用 GetItemRect
類別的 CMFCToolBar
方法。 此代碼段是 IE 示範範例的一部分。
CMFCToolBar m_wndToolBar;
CRect rectToolBar;
m_wndToolBar.GetItemRect(0, &rectToolBar);
CMFCToolBar::GetLargeColdImages
傳回應用程式中大型冷工具列按鈕影像集合的指標。
static CMFCToolBarImages* GetLargeColdImages();
傳回值
大型冷影像集合的指標。
備註
冷影像是使用者未與工具列按鈕互動時所使用的影像。 呼叫 CMFCToolBar::LoadBitmapEx
以載入大型冷映像。
CMFCToolBar::GetLargeDisabledImages
傳回應用程式中大型停用工具列按鈕影像集合的指標。
static CMFCToolBarImages* GetLargeDisabledImages();
傳回值
大型停用工具列按鈕影像集合的指標。
備註
大型影像是一般工具欄按鈕影像的大型版本。 呼叫 CMFCToolBar::LoadBitmapEx
或 CMFCToolBar::LoadBitmap
以載入大型影像。
CMFCToolBar::GetLargeImages
傳回應用程式中大型工具列按鈕影像集合的指標。
static CMFCToolBarImages* GetLargeImages();
傳回值
大型工具列按鈕影像集合的指標。
備註
大型影像是一般工具欄按鈕影像的大型版本。 呼叫 CMFCToolBar::LoadBitmapEx
以載入大型影像。
CMFCToolBar::GetLockedColdImages
傳回工具列中鎖定冷影像集合的指標。
CMFCToolBarImages* GetLockedColdImages();
傳回值
鎖定冷映像集合的指標,如果 NULL
工具列未鎖定,則為 。
備註
鎖定的影像是當使用者無法自定義工具列時,架構所使用的一般工具列按鈕影像版本。 冷影像是使用者未與工具列按鈕互動時所使用的影像。
如果工具列未鎖定,這個方法會傳 NULL
回 。 如果工具列未鎖定,這個方法也會在偵錯組建中產生判斷提示失敗。 如需鎖定工具列的詳細資訊,請參閱 CMFCToolBar::IsLocked
。
CMFCToolBar::LoadBitmapEx
呼叫 方法來載入鎖定的冷映像。
CMFCToolBar::GetLockedDisabledImages
傳回工具列中已鎖定之已停用影像集合的指標。
CMFCToolBarImages* GetLockedDisabledImages();
傳回值
已鎖定之已停用影像集合的指標,如果 NULL
工具列未鎖定,則為 。
備註
鎖定的影像是當使用者無法自定義工具列時,架構所使用的一般工具列按鈕影像版本。 停用的影像是架構在按鈕具有 TBBS_DISABLED
樣式時所使用的影像。
如果工具列未鎖定,這個方法會傳 NULL
回 。 如果工具列未鎖定,這個方法也會在偵錯組建中產生判斷提示失敗。 如需鎖定工具列的詳細資訊,請參閱 CMFCToolBar::IsLocked
。
CMFCToolBar::LoadBitmapEx
呼叫 方法來載入鎖定的已停用映像。
CMFCToolBar::GetLockedImages
傳回工具列中鎖定按鈕影像集合的指標。
CMFCToolBarImages* GetLockedImages();
傳回值
鎖定工具列按鈕影像集合的指標,如果 NULL
工具列未鎖定,則為 。
備註
鎖定的影像是當使用者無法自定義工具列時,架構所使用的一般工具列按鈕影像版本。
如果工具列未鎖定,這個方法會傳 NULL
回 。 如果工具列未鎖定,這個方法也會在偵錯組建中產生判斷提示失敗。 如需鎖定工具列的詳細資訊,請參閱 CMFCToolBar::IsLocked
。
CMFCToolBar::GetLockedImageSize
傳回鎖定工具列影像的預設大小。
CSize GetLockedImageSize() const;
傳回值
CSize
結構,指定鎖定工具列影像的大小,如果工具列未鎖定,則為空白CSize
結構。
備註
鎖定的影像是當使用者無法自定義工具列時,架構所使用的一般工具列按鈕影像版本。
如果工具列未鎖定,這個方法會 CSize
傳回寬度為零和零高度的結構。 如果工具列未鎖定,這個方法也會在偵錯組建中產生判斷提示失敗。 如需鎖定工具列的詳細資訊,請參閱 CMFCToolBar::IsLocked
。
CMFCToolBar::SetLockedSizes
呼叫 方法來指定鎖定的影像大小。
CMFCToolBar::GetLockedMenuImages
傳回工具列中鎖定工具列功能表影像集合的指標。
CMFCToolBarImages* GetLockedMenuImages();
傳回值
鎖定工具列選單影像集合的指標,如果 NULL
工具列未鎖定,則為 。
備註
鎖定的影像是當使用者無法自定義工具列時,架構所使用的一般工具列功能表影像版本。
如果工具列未鎖定,這個方法會傳 NULL
回 。 如果工具列未鎖定,這個方法也會在偵錯組建中產生判斷提示失敗。 如需鎖定工具列的詳細資訊,請參閱 CMFCToolBar::IsLocked
。
CMFCToolBar::LoadBitmapEx
呼叫 方法來載入鎖定的功能表影像。
CMFCToolBar::GetMenuButtonSize
傳回應用程式中功能按鈕的大小。
static CSize GetMenuButtonSize();
傳回值
CSize
物件,表示功能表按鈕的大小,以像素為單位。
備註
工具欄上的功能表按鈕大小會維持為全域變數,而且可由這個靜態方法擷取。
呼叫 CMFCToolBar::SetMenuSizes
以設定這個全域變數。
CMFCToolBar::GetMenuImages
傳回應用程式中功能按鈕影像集合的指標。
static CMFCToolBarImages* GetMenuImages();
傳回值
功能表影像集合的指標。
備註
CMFCToolBar::LoadBitmapEx
呼叫 方法來載入功能表影像。
CMFCToolBar::SetMenuSizes
呼叫 方法來設定按鈕的大小及其影像。
CMFCToolBar::GetMenuImageSize
傳回應用程式中功能按鈕影像的大小。
static CSize GetMenuImageSize();
傳回值
CSize
物件,表示功能表影像的大小。
備註
這個方法會傳回工具欄功能表按鈕上保留為全域變數的影像大小。 呼叫 CMFCToolBar::SetMenuSizes
以設定這個全域變數。
CMFCToolBar::GetOrigButtons
擷取工具列中非自定義按鈕的集合。
const CObList& GetOrigButtons() const;
傳回值
工具列中非自定義按鈕清單的參考。
備註
架構會在使用者自定義工具列按鈕之前,先建立工具列按鈕的複本。 方法會將 CMFCToolBar::SetButtons
所提供數位中每個按鈕的複本新增至原始按鈕清單。 方法 CMFCToolBar::RestoreOriginalState
會從資源檔載入工具列,以還原工具列的原始狀態。
若要設定工具列的原始按鈕清單,請呼叫 CMFCToolBar::SetOrigButtons
方法。
CMFCToolBar::GetOrigResetButtons
擷取工具列的非自定義重設按鈕集合。
const CObList& GetOrigResetButtons() const;
傳回值
工具列中非自定義重設按鈕清單的參考。
備註
當使用者在自定義模式期間選取 [重設 ] 按鈕時,架構會使用這個方法來還原從工具列中移除的按鈕。
方法 CMFCToolBar::SetButtons
會在呼叫 CMFCToolBar::OnReset
方法之後,將每個工具列按鈕的複本新增至原始重設按鈕的清單。 您可以覆寫 CMFCToolBar::OnReset
方法,以在使用者按下 [重設 ] 按鈕之後自定義按鈕的外觀。
CMFCToolBar::GetResourceID
擷取工具列的資源標識碼。
UINT GetResourceID() const;
傳回值
工具列的資源識別碼。
備註
CMFCToolBar::LoadToolBarEx
呼叫 方法來設定工具列的資源標識符。
CMFCToolBar::GetRouteCommandsViaFrame
決定哪個物件,父框架或擁有者,將命令傳送至工具列。
BOOL GetRouteCommandsViaFrame();
傳回值
如果父框架將命令傳送至工具列,則為非零;如果擁有者將命令傳送至工具列,則為 0。
備註
根據預設,父框架會將命令傳送至工具列。 呼叫 CMFCToolBar::SetRouteCommandsViaFrame
以變更此行為。
如果這個方法傳回非零值,您可以使用 方法來擷取父框架物件的 CMFCToolBar::GetCommandTarget
指標。 如需使用此方法的範例,請參閱VisualStudioDemo範例。
CMFCToolBar::GetRowHeight
傳回工具列按鈕的高度。
virtual int GetRowHeight() const;
傳回值
工具列按鈕的高度,以像素為單位。
備註
架構會呼叫此方法來計算工具列配置。 覆寫衍生類別中的這個方法,以指定工具列的不同高度。
CMFCToolBar::GetShowTooltips
指定是否顯示工具列按鈕的工具提示。
static BOOL GetShowTooltips();
傳回值
TRUE
如果工具列按鈕顯示工具提示,則為 ;否則 FALSE
為 。
備註
預設會顯示工具提示。 您可以呼叫 CMFCToolBar::SetShowTooltips
來變更此靜態旗標。
CMFCToolBar::GetSiblingToolBar
擷取工具列的同層級。
CMFCToolBar* GetSiblingToolBar();
傳回值
同層級工具列的指標。
備註
如需如何在一列上啟用 [顯示按鈕] 和 [在兩列顯示按鈕] 按鈕的詳細資訊,請參閱 CMFCToolBar::SetSiblingToolBar
。
CMFCToolBar::GetUserImages
傳回應用程式中用戶定義工具列按鈕影像集合的指標。
static CMFCToolBarImages* GetUserImages();
傳回值
應用程式中所有工具列的使用者定義工具列按鈕影像集合指標。
備註
CMFCToolBar::SetUserImages
呼叫 方法,以在應用程式中設定使用者定義影像的集合。
CMFCToolBar::HitTest
傳回位於指定位置之工具列按鈕的索引。
virtual int HitTest(CPoint point);
參數
point
[in]要測試的點,在用戶端座標中。
傳回值
位於指定位置的按鈕索引,如果沒有這類按鈕或按鈕是分隔符,則為 -1。
CMFCToolBar::InsertButton
將按鈕插入工具列。
virtual int InsertButton(
const CMFCToolBarButton& button,
INT_PTR iInsertAt=-1);
virtual int InsertButton(
CMFCToolBarButton* pButton,
int iInsertAt=-1);
參數
button
[in]指定要插入的按鈕。
iInsertAt
[in]指定要插入按鈕的以零起始的位置。
傳回值
插入按鈕的位置,如果發生錯誤,則為 -1。
備註
如果 iInsertAt
為 -1,這個方法會將按鈕新增至工具列按鈕清單的結尾。
CMFCToolBar::InsertSeparator
呼叫 方法,將分隔符插入工具列中。
CMFCToolBar::InsertSeparator
將分隔符插入工具列。
virtual int InsertSeparator(INT_PTR iInsertAt=-1);
參數
iInsertAt
[in]指定要插入分隔符之以零起始的位置。 此參數必須大於 0。
傳回值
插入分隔符的位置,如果發生錯誤,則為 -1。
備註
呼叫此方法,以在兩個現有按鈕之間插入分隔符。 如果 iInsertAt
為 -1,這個方法會將分隔符加入工具列按鈕清單的結尾。
您無法使用此方法將分隔符新增至空白工具列。
CMFCToolBar::InsertButton
呼叫 方法,將按鈕插入工具列。
CMFCToolBar::InvalidateButton
使存在於所提供索引之工具列按鈕的工作區失效。
CMFCToolBarButton* InvalidateButton(int nIndex);
參數
nIndex
[in]工具列中按鈕之以零起始的索引。
傳回值
存在於所提供索引處的物件指標 CMFCToolBarButton
,如果 NULL
不存在這類物件,則為 。
備註
架構會在更新與工具列按鈕相關聯的工作區時呼叫此方法。 它會使用存在於所提供索引處之 物件的用戶端矩形CMFCToolBarButton
來呼叫 CWnd::InvalidateRect
方法。
CMFCToolBar::IsAddRemoveQuickCustomize
判斷使用者是否可以使用 [自定義 ] 功能表選項來新增或移除工具列按鈕。
BOOL IsAddRemoveQuickCustomize();
傳回值
TRUE
如果使用者可以使用 [ 自訂 ] 選單選項來修改工具列,則為 , FALSE
否則為 。
備註
CMFCToolBar::IsAltCustomizeMode
指定是否 使用快速自定義 來拖曳按鈕。 啟用快速自定義時,用戶可以按住 Alt 鍵,並將按鈕拖曳至新位置。
static BOOL __stdcall IsAltCustomizeMode();
傳回值
TRUE
如果使用快速自定義來拖曳按鈕;否則為 FALSE
。
備註
CMFCToolBar::IsAutoGrayInactiveImages
指定是否啟用自動產生非作用中(非醒目提示)按鈕影像。
static BOOL IsAutoGrayInactiveImages();
傳回值
TRUE
如果已啟用自動將非使用影像調暗的選項,則為 ;否則 FALSE
為 。
備註
您可以呼叫 CMFCToolBar::AutoGrayInactiveImages
來啟用或停用非使用中影像的自動暗灰色功能。
CMFCToolBar::IsBasicCommand
判斷命令是否位於基本命令清單中。
static BOOL IsBasicCommand(UINT uiCmd);
參數
uiCmd
[in]指定要檢查的命令。
傳回值
TRUE
如果指定的指令屬於基本命令的清單,則為 ;否則 FALSE
為 。
備註
這個靜態方法會判斷 所 uiCmd
指定的命令是否屬於基本命令的全域清單。 您可以呼叫 CMFCToolBar::AddBasicCommand
或 CMFCToolBar::SetBasicCommands
來變更基本命令的清單。
CMFCToolBar::IsButtonExtraSizeAvailable
判斷工具列是否可以顯示具有延伸框線的按鈕。
virtual BOOL IsButtonExtraSizeAvailable() const;
傳回值
TRUE
如果橫條可以顯示具有額外框線大小的按鈕,則為 ;否則 FALSE
為 。
備註
如果工具列物件可以顯示具有延伸框線的按鈕,則會傳回 TRUE
。 工具列按鈕會在處理通知時呼叫此方法, CMFCToolBarButton::OnChangeParentWnd
並據以設定其內部額外的框線大小旗標。 稍後可以呼叫 CMFCToolBarButton::IsExtraSize
來擷取此內部旗標。
覆寫衍生自 CMFCToolBar
的類別中的這個方法,如果列可以顯示具有額外框線大小的工具列按鈕,則傳回 TRUE
,否則傳回 FALSE
。 預設實作會傳回 TRUE
。
CMFCToolBar::IsButtonHighlighted
判斷指定的按鈕是否反白顯示。
BOOL IsButtonHighlighted(int iButton) const;
參數
iButton
[in]指定工具列按鈕的索引。
傳回值
TRUE
如果已反白顯示指定的按鈕,則為 ;否則為 FALSE
。
備註
CMFCToolBar::IsCommandPermitted
判斷是否允許命令。
static BOOL IsCommandPermitted(UINT uiCmd);
參數
uiCmd
[in]指定要檢查的命令。
傳回值
TRUE
如果允許指定的指令,則為 ;否則 FALSE
為 。
備註
這個靜態方法會判斷 所 uiCmd
指定的命令是否屬於非允許命令的全域清單。
您可以呼叫 CMFCToolBar::SetNonPermittedCommands
來變更不允許命令的清單。
CMFCToolBar::IsCommandRarelyUsed
判斷命令是否很少使用。
static BOOL IsCommandRarelyUsed(UINT uiCmd);
參數
uiCmd
[in]指定要檢查的命令。
傳回值
TRUE
如果很少使用指定的命令,則為 ;否則 FALSE
為 。
備註
當發生下列一或多個情況時,方法 IsCommandRarelyUsed
會 FALSE
傳回:
指定的命令屬於基本命令的清單
指定的命令是其中一個標準命令
架構處於自定義模式
基本命令的清單是空的
超過 20% 的命令呼叫是呼叫指定的命令。
CMFCToolBar::IsCustomizeMode
指定工具列架構是否處於自定義模式。
static BOOL IsCustomizeMode();
傳回值
TRUE
如果架構處於自定義模式,則為 ;否則 FALSE
為 。
備註
您可以呼叫 CMFCToolBar::SetCustomizeMode
來切換自定義模式。
當使用者叫用自定義對話框 ( CMFCToolBarsCustomizeDialog
類別) 時,架構會變更模式。
CMFCToolBar::IsDragButton
判斷是否要拖曳工具列按鈕。
BOOL IsDragButton(const CMFCToolBarButton* pButton) const;
參數
pButton
[in]工具列按鈕的指標。
傳回值
TRUE
如果正在拖曳指定的按鈕,則為 ;否則為 FALSE
。
備註
CMFCToolBar::IsExistCustomizeButton
判斷工具列是否包含 [ 自定義 ] 按鈕。
BOOL IsExistCustomizeButton();
傳回值
TRUE
如果工具列包含 [ 自訂 ] 按鈕,則為 ,否則 FALSE
為 。
備註
如果這個方法傳TRUE
回 ,此方法CMFCToolBar::GetCustomizeButton
會傳回工具列結尾出現的 [自定義] 按鈕指標。
使用 方法, CMFCToolBar::EnableCustomizeButton
將 [ 自定義 ] 按鈕新增至工具列。
CMFCToolBar::IsFloating
判斷工具列是否浮動。
virtual BOOL IsFloating() const;
傳回值
TRUE
如果工具列是浮動的,則為 ;否則為 FALSE
。
CMFCToolBar::IsLargeIcons
指定應用程式中的工具列目前是否顯示大型圖示。
static BOOL IsLargeIcons();
傳回值
TRUE
如果應用程式使用大型圖示,則為 ;否則 FALSE
為 。
備註
呼叫 CMFCToolBar::SetLargeIcons
以在大型圖示和一般圖示之間切換。
當使用者在 [自定義] 對話方塊的 [選項] 頁面上切換 [大型圖示] 複選框時,架構會自動變更模式。
CMFCToolBar::IsLastCommandFromButton
判斷最近執行的命令是否從指定的工具列按鈕傳送。
static BOOL IsLastCommandFromButton(CMFCToolBarButton* pButton);
參數
pButton
[in]按鈕的指標。
傳回值
TRUE
如果最後一個指令是從指定按鈕傳送, pButton
則為 ,否則 FALSE
為 。
備註
這個方法會藉由呼叫 CWnd::GetCurrentMessage
來取得 Structure 的MSG
指標。 然後,它會比較 HWND
按鈕 MSG::lParam
的 與 和 MSG::hwnd
成員,以判斷按鈕是否為命令的來源。
CMFCToolBar::IsLocked
判斷工具列是否已鎖定。
BOOL IsLocked() const;
傳回值
TRUE
如果工具列已鎖定,則為 ;否則為 FALSE
。
備註
當使用者無法執行自訂工作,例如重新置放工具列按鈕時,這個方法會 TRUE
傳回 。
鎖定的工具列會使用不同的影像清單。 如需這些映像清單的詳細資訊,請參閱 CMFCToolBar::LoadBitmapEx
。
CMFCToolBar::IsOneRowWithSibling
判斷工具列及其同層級工具列是否位於相同的數據列上。
BOOL IsOneRowWithSibling();
傳回值
TRUE
如果工具列及其同層級位於相同的數據列,則為 ;否則 FALSE
為 。
備註
方法 CMFCCustomizeButton::CreatePopupMenu
會呼叫此方法,以判斷如何顯示 [自定義 ] 彈出視窗。 如果這個方法傳TRUE
回 ,架構會在一列按鈕上顯示 [顯示按鈕]。 否則,架構會顯示 [兩個數據列] 按鈕上的 [顯示按鈕]。
您通常不需要使用這個方法。 若要在一個資料列上啟用 [顯示按鈕] 或 [在兩個資料列上顯示按鈕] 按鈕,請呼叫 CMFCToolBar::SetSiblingToolBar
。
CMFCToolBar::IsResourceChanged
virtual BOOL IsResourceChanged() const;
傳回值
備註
CMFCToolBar::IsSibling
BOOL IsSibling();
傳回值
備註
CMFCToolBar::IsUserDefined
指定工具列是否為用戶定義。
BOOL IsUserDefined() const;
傳回值
TRUE
如果使用者已建立工具列,則為 ;否則 FALSE
為 。
CMFCToolBar::LoadBitmap
從應用程式資源載入工具列影像。
virtual BOOL LoadBitmap(
UINT uiResID,
UINT uiColdResID=0,
UINT uiMenuResID=0,
BOOL bLocked=FALSE,
UINT uiDisabledResID=0,
UINT uiMenuDisabledResID=0);
參數
uiResID
[in]參考作用中工具列影像之位圖的資源標識碼。
uiColdResID
[in]參考冷工具列影像之位圖的資源標識符。
uiMenuResID
[in]參考一般功能表影像之位圖的資源標識碼。
bLocked
[in] TRUE
鎖定工具列;否則 FALSE
為 。
uiDisabledResID
[in]參考已停用工具列影像之位圖的資源標識碼。
uiMenuDisabledResID
[in]參考已停用功能表影像之位圖的資源標識碼。
傳回值
如果方法成功,則為非零,否則為零。
備註
方法 CMFCToolBar::LoadToolBarEx
會呼叫此方法,以載入與工具列相關聯的影像。 覆寫這個方法可執行影像資源的自訂載入。
呼叫 LoadBitmapEx
方法可在建立工具列之後載入其他影像。
CMFCToolBar::LoadBitmapEx
virtual BOOL LoadBitmapEx(
CMFCToolBarInfo& params,
BOOL bLocked = FALSE);
參數
[輸入] params
[輸入] bLocked
\
傳回值
備註
CMFCToolBar::LoadLargeIconsState
static BOOL __stdcall LoadLargeIconsState(LPCTSTR lpszProfileName = NULL);
參數
[輸入] lpszProfileName
\
傳回值
備註
CMFCToolBar::LoadParameters
從 Windows 登錄載入全域工具列選項。
static BOOL LoadParameters(LPCTSTR lpszProfileName=NULL);
參數
lpszProfileName
[in]指定 Windows 登錄機碼的相對路徑。
傳回值
如果方法成功,則為非零,否則為零。
備註
此方法會載入全域參數,例如功能表動畫類型、功能表陰影樣式,以及是否要從 Windows 登錄顯示大型圖示。
方法會 CWinAppEx::LoadState
呼叫這個方法做為應用程式初始化程式的一部分。
CMFCToolBar::LoadState
從 Windows 登錄載入工具列狀態資訊。
virtual BOOL LoadState(
LPCTSTR lpszProfileName=NULL,
int nIndex=-1,
UINT uiID=(UINT)-1);
參數
lpszProfileName
[in]指定 Windows 登錄機碼的相對路徑。
nIndex
[in]指定工具列的控件識別碼。
uiID
[in]指定工具列的資源識別碼。
傳回值
如果方法成功,則為非零,否則為零。
備註
架構會呼叫這個方法做為應用程式初始化程式的一部分。 如需詳細資訊,請參閱CWinAppEx::LoadState
。
CMFCToolBar::LoadToolBar
從應用程式資源載入工具列。
virtual BOOL LoadToolBar(
UINT uiResID,
UINT uiColdResID=0,
UINT uiMenuResID=0,
BOOL bLocked=FALSE,
UINT uiDisabledResID=0,
UINT uiMenuDisabledResID=0,
UINT uiHotResID=0);
參數
uiResID
[in]工具列的資源識別碼。
uiColdResID
[in]參考冷工具列影像之位圖的資源標識符。
uiMenuResID
[in]參考一般功能表影像之位圖的資源標識碼。
bLocked
[in]布爾值,指定工具列是否已鎖定。 如果此參數為 TRUE
,工具列就會鎖定。 否則,工具列不會鎖定。
uiDisabledResID
[in]參考已停用工具列影像之位圖的資源標識碼。
uiMenuDisabledResID
[in]參考已停用功能表影像之位圖的資源標識碼。
uiHotResID
[in]參考作用中工具列影像之位圖的資源標識碼。
傳回值
如果方法成功,則為非零,否則為零。
備註
架構會在初始化期間呼叫此方法,以載入與工具列相關聯的影像。
範例
下列範例示範如何在 類別中使用 LoadToolBar
CMFCToolBar
方法。 此代碼段是 IE 示範範例的一部分。
CMFCToolBar m_wndToolBar;
// The this pointer points to CMainFrame class which extends the CFrameWnd class.
if (!m_wndToolBar.CreateEx(this, TBSTYLE_TRANSPARENT) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME, uiToolbarColdID, uiMenuID,
FALSE /* Not locked */, 0, 0, uiToolbarHotID))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
CMFCToolBar::LoadToolBarEx
使用 CMFCToolBarInfo
協助程式類別從應用程式資源載入工具列,讓應用程式能夠使用大型影像。
virtual BOOL LoadToolBarEx(
UINT uiToolbarResID,
CMFCToolBarInfo& params,
BOOL bLocked=FALSE);
參數
uiToolbarResID
[in]工具列的資源識別碼。
params
[in]對象的參考 CMFCToolBarInfo
,其中包含工具列影像的資源標識符。
bLocked
[in]布爾值,指定工具列是否已鎖定。 如果此參數為 TRUE
,工具列就會鎖定。 否則,工具列不會鎖定。
傳回值
如果方法成功,則為非零,否則為零。
備註
呼叫此方法以從應用程式資源載入工具列影像。
CMFCToolBar::m_dblLargeImageRatio
指定大型影像維度(高度或寬度)與一般影像維度之間的比率。
AFX_IMPORT_DATA static double m_dblLargeImageRatio;
備註
默認比率為 2。 您可以變更此值,讓大型工具欄影像變大或更小。
當您未指定一組大型映射時,架構會使用此數據成員。 例如,如果您只提供大小為 16x16 的小型影像集,而且希望大型影像的大小為 24x24,請將此數據成員設定為 1.5。
CMFCToolBar::NextMenu
virtual BOOL NextMenu();
傳回值
備註
CMFCToolBar::OnBeforeRemoveButton
virtual BOOL OnBeforeRemoveButton(
CMFCToolBarButton* pButton,
DROPEFFECT dropEffect);
參數
pButton
[in] 未使用。
dropEffect
[in] 未使用。
傳回值
備註
CMFCToolBar::OnChangeHot
當使用者選取工具列上的按鈕時,由架構呼叫。
virtual void OnChangeHot(int iHot);
參數
iHot
[in]指定選取之工具列按鈕的索引;如果未選取工具列按鈕,則為 -1。
備註
覆寫此方法,以處理用戶選取工具列上按鈕的通知。
CMFCToolBar::OnChangeVisualManager
virtual void OnChangeVisualManager();
備註
CMFCToolBar::OnFillBackground
由架構 CBasePane::DoPaint
從呼叫以填滿工具列背景。
virtual void OnFillBackground(CDC* pDC);
參數
pDC
[in]裝置內容的指標。
備註
CMFCToolBar::DoPaint
當工具列的背景已填滿時,會呼叫這個方法。 預設實作不做任何動作。
覆寫此方法以在衍生類別中繪製自定義背景。
CMFCToolBar::OnGlobalFontsChanged
virtual void OnGlobalFontsChanged();
備註
CMFCToolBar::OnReset
將工具列還原為其原始狀態。
virtual void OnReset();
備註
覆寫此方法以處理工具列重設的相關通知。
預設實作不做任何動作。 當 OnReset
工具列具有虛擬按鈕時,當工具列回到原始狀態時,必須取代的類別 CMFCToolBar
中覆寫 。
CMFCToolBar::OnSetAccData
virtual BOOL OnSetAccData(long lVal);
參數
[輸入] lVal
\
傳回值
備註
CMFCToolBar::OnSetDefaultButtonText
將工具列按鈕的文字還原為其默認狀態。
virtual BOOL OnSetDefaultButtonText(CMFCToolBarButton* pButton);
參數
pButton
[in]指向正在設定其文字的按鈕。
傳回值
TRUE
如果已成功還原文字,則為 ;否則 FALSE
為 。
備註
覆寫此方法來處理工具列按鈕的文字變更為其預設值的通知。
默認實作會從應用程式資源載入按鈕的文字。
CMFCToolBar::OnUserToolTip
當按鈕的工具提示即將顯示時,由架構呼叫。
virtual BOOL OnUserToolTip(
CMFCToolBarButton* pButton,
CString& strTTText) const;
參數
pButton
[in]指向要顯示工具提示的工具列按鈕。
strTTText
[out]接收工具提示文字的對象參考 CString
。
傳回值
TRUE
如果 strTTText
已填入工具提示文字,則為 ,否則 FALSE
為 。
備註
當工具列按鈕的工具提示即將顯示時,架構會呼叫此方法。 如果 OnUserToolTip
傳TRUE
回 ,則架構會顯示工具提示,其中包含 中strTTText
傳OnUserToolTip
回的文字。 否則,工具提示會包含按鈕文字。
覆寫 OnUserToolTip
以自定義工具列按鈕的工具提示。 默認實作會呼叫 CMFCToolBar::OnUserToolTip
以取得工具提示文字。
CMFCToolBar::PrevMenu
virtual BOOL PrevMenu();
傳回值
備註
CMFCToolBar::ProcessCommand
將 WM_COMMAND
訊息張貼至擁有工具列的視窗。
BOOL ProcessCommand(CMFCToolBarButton* pButton);
參數
pButton
[in]工具列上按鈕的指標。
傳回值
這個方法應該一律會傳回 TRUE
。 MFC 會在內部使用 FALSE
值。
備註
這個方法會將訊息張貼 WM_COMMAND
至擁有工具列的視窗,方法是呼叫 CWnd::PostMessage
並傳遞指定按鈕的命令標識元做為 wParam
參數。
ON_COMMAND
使用巨集將訊息對應WM_COMMAND
至成員函式。
CMFCToolBar::RemoveAllButtons
從工具列移除所有按鈕和分隔符。
virtual void RemoveAllButtons();
備註
架構會在重新建立或終結工具列時呼叫這個方法。
CMFCToolBar::RemoveButton
從工具列中移除具有指定索引的按鈕。
virtual BOOL RemoveButton(int iIndex);
參數
iIndex
[in]指定要移除之按鈕的以零起始的索引。
傳回值
TRUE
如果方法成功,或 FALSE
指定的索引無效,或索引參考 [ 自訂 ] 按鈕,則為 。
備註
此方法會更新受移除按鈕影響的其他工具列屬性。 例如,這個方法會從工具列移除不連續分隔符,並重建快捷鍵的數據表。
如需自定義按鈕的詳細資訊,請參閱 CMFCToolBar::EnableCustomizeButton
。
CMFCToolBar::RemoveStateFromRegistry
從 Windows 登錄刪除工具列的狀態資訊。
virtual BOOL RemoveStateFromRegistry(
LPCTSTR lpszProfileName=NULL,
int nIndex=-1,
UINT uiID=(UINT)-1);
參數
lpszProfileName
[in]指定狀態資訊所在的登錄機碼。
nIndex
[in]工具列的控件識別碼。
uiID
[in]工具列的資源識別碼。 如果此參數是 -1,這個方法會 CWnd::GetDlgCtrlID
使用 方法來擷取資源標識碼。
傳回值
如果方法成功,則為非零,否則為零。
備註
架構會在刪除使用者定義工具列時呼叫此方法。
如果您在 Windows 登錄中儲存其他狀態資訊,請覆寫此方法。
CMFCToolBar::ReplaceButton
以另一個工具列按鈕取代工具列按鈕。
int ReplaceButton(
UINT uiCmd,
const CMFCToolBarButton& button,
BOOL bAll=FALSE);
參數
uiCmd
[in]要取代之按鈕的命令標識碼。
button
[in]要插入之 的 CMFCToolBarButton
參考。
bAll
[in]布爾值,指定是否要取代具有 所 uiCmd
指定命令標識碼的所有按鈕。 如果此參數為 TRUE
,則會取代具有指定命令標識碼的所有按鈕。 否則,會取代第一個按鈕。
傳回值
已取代的按鈕數目。 如果工具列上沒有具有指定命令標識碼的按鈕,這個方法會傳回 0。
備註
當您想要新增無法從資源載入的工具列按鈕時,請呼叫此方法。 您可以在設計時間建立佔位元元按鈕,並在初始化工具列時以自定義按鈕取代該按鈕。 如需使用此方法的範例,請參閱VisualStudioDemo範例。
範例
下列範例示範如何在 類別中使用 ReplaceButton
CMFCToolBar
方法。 此代碼段是 IE 示範範例的一部分。
CMFCToolBar m_wndToolBar;
// CMenu menuHistory
// CString str
m_wndToolBar.ReplaceButton(ID_GO_BACK,
CMFCToolBarMenuButton(ID_GO_BACK, menuHistory,
GetCmdMgr()->GetCmdImage(ID_GO_BACK), str));
CMFCToolBar::ResetAll
將所有工具列還原到其原始狀態。
static void __stdcall ResetAll();
備註
這個方法會呼叫 CMFCToolBar::RestoreOriginalState
應用程式中每個工具列上可以還原的方法。 它會使用 CMFCToolBar::CanBeRestored
方法來判斷是否可以還原工具列。
CMFCToolBar::ResetAllImages
清除應用程式中的所有工具列影像集合。
static void __stdcall ResetAllImages();
備註
這個方法會清除和 CMFCToolBar::LoadToolBar
CMFCToolBar::LoadBitmap
方法初始化的映像集合。
CMFCToolBar::ResetImages
virtual void ResetImages();
備註
CMFCToolBar::RestoreFocus
virtual void RestoreFocus();
備註
CMFCToolBar::RestoreOriginalState
還原工具列的原始狀態。
virtual BOOL RestoreOriginalState();
傳回值
TRUE
如果方法成功,或 FALSE
方法失敗或工具列為使用者定義,則為 。
備註
這個方法會使用 CMFCToolBar::LoadToolBar
方法,從資源檔載入工具列。
當使用者在自定義對話方塊的 [工具列] 頁面上選擇 [全部重設] 按鈕時,架構會呼叫此方法。
CMFCToolBar::SaveParameters
static BOOL __stdcall SaveParameters(LPCTSTR lpszProfileName = NULL);
參數
[輸入] lpszProfileName
\
傳回值
備註
CMFCToolBar::SaveState
將工具列的狀態資訊儲存在 Windows 登錄中。
virtual BOOL SaveState(
LPCTSTR lpszProfileName=NULL,
int nIndex=-1,
UINT uiID=(UINT)-1);
參數
lpszProfileName
[in]指定 Windows 登錄機碼的相對路徑。
nIndex
[in]工具列的控件識別碼。
uiID
[in]工具列的資源識別碼。
傳回值
如果方法成功,則為非零,否則為零。
備註
架構會將應用程式狀態儲存至登錄時,會呼叫這個方法。 如需詳細資訊,請參閱CWinAppEx::SaveState
。
CMFCToolBar::SetBasicCommands
設定用戶開啟功能表時一律顯示的命令清單。
static void __stdcall SetBasicCommands(CList<UINT,UINT>& lstCommands);
參數
lstCommands
[in]包含命令集合之 對象的參考 CList
。
備註
開啟功能表時,一律會顯示基本命令。 當使用者選擇檢視最近使用的命令時,這個方法就有意義。
CMFCToolBar::AddBasicCommand
使用方法,將命令新增至基本命令清單。 CMFCToolBar::GetBasicCommands
使用方法來擷取應用程式所使用的基本命令清單。
如需使用此方法的範例,請參閱 Explorer 範例。
CMFCToolBar::SetButtonInfo
設定工具列按鈕的命令標識碼、樣式和影像標識碼。
void SetButtonInfo(
int nIndex,
UINT nID,
UINT nStyle,
int iImage);
參數
nIndex
[in]設定其屬性之按鈕之以零起始的索引。
nID
[in]按鈕的命令標識碼。
nStyle
[in]按鈕的樣式。 如需可用的工具列按鈕樣式清單,請參閱 ToolBar控件 樣式。
iImage
[in]按鈕之以零起始的影像索引(也就是工具欄影像集合中的索引)。
備註
呼叫此方法以設定工具列按鈕的屬性。
在偵錯組建中,如果 所 nIndex
指定的索引無效,這個方法會產生判斷提示失敗。
CMFCToolBar::SetButtonStyle
呼叫 方法,只設定按鈕的樣式。
CMFCToolBar::SetButtons
設定工具列的按鈕。
virtual BOOL SetButtons(
const UINT* lpIDArray,
int nIDCount,
BOOL bRemapImages=TRUE);
參數
lpIDArray
[in]要插入之按鈕之命令標識碼陣列的指標。
nIDCount
[in]中的 lpIDArray
項目數。
bRemapImages
[in]布爾值,指定是否要將現有的按鈕影像與插入的按鈕產生關聯。 如果此參數為 TRUE
,則會重新對應影像。
傳回值
如果方法成功,則為非零,否則為零。
備註
呼叫這個方法,從工具列移除現有的按鈕,並插入新按鈕的集合。
這個方法會將 [ 自定義 ] 按鈕新增至工具列,並將訊息傳送 AFX_WM_RESETTOOLBAR
至工具列的父視窗。 如需自定義按鈕的詳細資訊,請參閱 CMFCToolBar::EnableCustomizeButton
。
CMFCToolBar::SetButtonStyle
設定指定索引處工具列按鈕的樣式。
virtual void SetButtonStyle(
int nIndex,
UINT nStyle);
參數
nIndex
[in]要設定其樣式的工具列按鈕之以零起始的索引。
nStyle
[in]按鈕的樣式。 如需可用的工具列按鈕樣式清單,請參閱 ToolBar控件 樣式。
備註
如果 nStyle
是因為TBBS_DISABLED
使用者無法選取停用的按鈕,則此方法會移除TBBS_PRESSED
樣式。
CMFCToolBar::SetButtonText
設定工具列按鈕的文字標籤。
BOOL SetButtonText(
int nIndex,
LPCTSTR lpszText);
參數
nIndex
[in]工具列按鈕的索引。
lpszText
[in]工具列按鈕的文字標籤。 必須為非 Null。
傳回值
TRUE
如果方法成功,則為 ;否則 FALSE
為 。
備註
如果提供的索引未參考有效的工具列按鈕,這個方法會 FALSE
傳回 。
CMFCToolBar::SetCommandUsageOptions
指定很少使用的命令何時不會出現在應用程式的功能表中。
static BOOL SetCommandUsageOptions(
UINT nStartCount,
UINT nMinUsagePercentage=5);
參數
nStartCount
[in]指定在架構只顯示基本和最近使用的命令之前,必須執行命令的次數。
nMinUsagePercentage
[in]命令必須執行的百分比,才能被視為最近使用的命令。
傳回值
FALSE
如果 nMinUsagePercentage
等於或大於 100,則為 ,否則 TRUE
為 。
備註
呼叫此方法,以自定義架構用來判斷基本和最近使用功能表項顯示方式的演算法。 如需基本命令的詳細資訊,請參閱 CMFCToolBar::AddBasicCommand
。
這個類別會 CMFCCmdUsageCount
使用 類別來追蹤命令的使用計數。 如需此類別的詳細資訊,請參閱 CMFCCmdUsageCount
類別。
CMFCToolBar::SetCustomizeMode
啟用或停用應用程式中所有工具列的自定義模式。
static BOOL __stdcall SetCustomizeMode(BOOL bSet=TRUE);
參數
bSet
[in]布爾值,指定要啟用或停用自定義模式。 將此參數設定為 TRUE
,以啟用自定義模式或 FALSE
將其停用。
傳回值
TRUE
如果呼叫此方法會變更自訂模式,則為 ;否則 FALSE
為 。
備註
這個方法會調整 和 重新繪製應用程式中每個工具列的配置。 CMFCToolBar::IsCustomizeMode
呼叫 方法來判斷應用程式是否處於自定義模式,
CMFCToolBar::SetGrayDisabledButtons
指定工具列上的無法使用按鈕是否呈現暗灰色,或是否使用按鈕無法使用的影像。
void SetGrayDisabledButtons(BOOL bGrayDisabledButtons);
參數
bGrayDisabledButtons
[in]布爾值,指定如何顯示無法使用的按鈕。 如果此參數為 TRUE
,則架構會將按鈕變暗。 否則,架構會使用按鈕無法使用映像的集合。
備註
根據預設,無法使用的按鈕會變暗。
CMFCToolBar::SetHeight
設定工具列的高度。
void SetHeight(int cyHeight);
參數
cyHeight
[in]工具列的高度,以像素為單位。
備註
此方法會在設定高度之後重新繪製工具列。
CMFCToolBar::SetHelpMode
static void __stdcall SetHelpMode(BOOL bOn = TRUE);
參數
[輸入] bOn
\
備註
CMFCToolBar::SetHot
BOOL SetHot(CMFCToolBarButton* pMenuButton);
參數
[輸入] pMenuButton
\
傳回值
備註
CMFCToolBar::SetHotBorder
指定工具列按鈕是否為熱追蹤。
void SetHotBorder(BOOL bShowHotBorder);
參數
bShowHotBorder
[in]布爾值,指定是否要熱追蹤工具列按鈕。 如果此參數為 TRUE
,工具列會熱追蹤其按鈕。 否則,工具列不會熱追蹤其按鈕。
備註
如果按鈕是熱追蹤的,架構會在滑鼠移動時反白顯示按鈕。 根據預設,每個工具列都會熱追蹤其按鈕。
CMFCToolBar::GetHotBorder
呼叫 方法,以判斷工具列是否熱追蹤其按鈕。
CMFCToolBar::SetHotTextColor
設定作用中工具列按鈕的文字色彩。
static void SetHotTextColor(COLORREF clrText);
參數
clrText
[in]指定已作用中追蹤之工具列按鈕的文字色彩。
備註
如需熱追蹤工具列按鈕的詳細資訊,請參閱 CMFCToolBar::GetHotBorder
和 CMFCToolBar::SetHotBorder
。
CMFCToolBar::SetIgnoreSetText
void SetIgnoreSetText(BOOL bValue);
參數
[輸入] bValue
\
備註
CMFCToolBar::SetLargeIcons
指定工具列按鈕是否顯示大型圖示。
static void SetLargeIcons(BOOL bLargeIcons=TRUE);
參數
bLargeIcons
[in]布爾值,指定要使用的圖示。 如果此參數為 TRUE
,則架構會顯示大型圖示。 否則,架構會顯示一般圖示。
備註
當使用者在 [自定義] 對話方塊的 [選項] 索引標籤中變更 [大型圖示] 複選框的狀態時,架構會呼叫此方法。 此方法會調整應用程式中所有工具列的大小。
根據預設,架構會顯示一般圖示。
如需自定義對話框的詳細資訊,請參閱 CMFCToolBarsCustomizeDialog
類別。
CMFCToolBar::SetLockedSizes
設定工具列上鎖定按鈕和鎖定影像的大小。
void SetLockedSizes(
SIZE sizeButton,
SIZE sizeImage,
BOOL bDontScale = FALSE);
參數
sizeButton
[in]指定鎖定工具列按鈕的大小。
sizeImage
[in]指定鎖定工具列影像的大小。
bDontScale
指定是否以高 DPI 模式縮放工具列影像。
備註
鎖定按鈕的預設大小為 23x22 圖元。 鎖定影像的預設大小為16x15像素。
CMFCToolBar::GetLockedImageSize
呼叫 方法來擷取鎖定影像的大小。 CMFCToolBar::GetButtonSize
呼叫 方法來擷取鎖定工具列按鈕的大小。
CMFCToolBar::SetMaskMode
void SetMaskMode(BOOL bMasked);
參數
[輸入] bMasked
\
備註
CMFCToolBar::SetMenuSizes
設定工具列功能表按鈕及其影像的大小。
static void __stdcall SetMenuSizes(
SIZE sizeButton,
SIZE sizeImage);
參數
sizeButton
[in]指定工具列按鈕的大小,以像素為單位。
sizeImage
[in]指定工具列影像的大小,以像素為單位。
備註
根據預設,功能表按鈕及其影像的大小未定義。
CMFCToolBar::GetMenuButtonSize
呼叫 方法來判斷功能表按鈕的大小,以及CMFCToolBar::GetMenuImageSize
判斷功能表按鈕影像大小的方法。
如需使用此方法的範例,請參閱 IEDemo 和 MSMoneyDemo 範例。
CMFCToolBar::SetNonPermittedCommands
設定使用者無法執行的命令清單。
static void SetNonPermittedCommands(CList<UINT,UINT>& lstCommands);
參數
lstCommands
[in]對象的參考 CList
,其中包含使用者無法執行的命令。
備註
呼叫此方法以防止用戶選取特定命令。 例如,基於安全性考慮,您可能想要防止用戶選取特定命令。 如需使用此方法的範例,請參閱 MDITabsDemo 和 MenuSubSet 範例。
這個方法會清除先前不允許的命令清單。 根據預設,非允許命令的清單是空的。
CMFCToolBar::SetOneRowWithSibling
將工具列及其同層級放置在相同的數據列上。
void SetOneRowWithSibling();
備註
當使用者選取 [單列 ] 按鈕上的 [顯示按鈕] 時,架構會呼叫此方法。
CMFCToolBar::SetSiblingToolBar
呼叫 方法,以啟用 [一列] 上的 [顯示按鈕] 或 [在兩個數據列] 按鈕上顯示按鈕。 如果您呼叫 CMFCToolBar::SetSiblingToolBar
此工具列,同層級工具列會移至此工具列的數據列。 否則,此工具列會移至同層級的數據列。
當使用者選取 [兩個數據列] 按鈕上的 [顯示按鈕] 按鈕時,架構會呼叫 CMFCToolBar::SetTwoRowsWithSibling
方法。
CMFCToolBar::SetOrigButtons
void SetOrigButtons(const CObList& lstOrigButtons);
參數
[輸入] lstOrigButtons
\
備註
CMFCToolBar::SetPermament
指定使用者是否可以關閉工具列。
void SetPermament(BOOL bPermament=TRUE);
參數
bPermament
[in]布爾值,指定使用者是否可以關閉工具列。 如果此參數為 TRUE
,則使用者無法關閉工具列。 否則,使用者可以關閉工具列。
備註
根據預設,用戶可以關閉每個工具列。
CMFCToolBar::CanBeClosed
呼叫 方法來判斷使用者是否可以關閉工具列。
CMFCToolBar::SetRouteCommandsViaFrame
指定父框架或擁有者是否會將命令傳送至工具列。
void SetRouteCommandsViaFrame(BOOL bValue);
參數
bValue
[in]如果此參數為 TRUE
,父框架會將命令傳送至工具列。 否則,擁有者會將命令傳送至工具列。
備註
根據預設,父框架會將命令傳送至工具列。 CMFCToolBar::GetRouteCommandsViaFrame
呼叫 方法來判斷父框架或擁有者是否會將命令傳送至工具列。
CMFCToolBar::SetShowTooltips
指定架構是否顯示工具提示。
static void SetShowTooltips(BOOL bValue);
參數
bValue
[in]如果此參數為 TRUE
,則架構會顯示工具提示。 否則,架構會隱藏工具提示。
備註
根據預設,架構會顯示工具提示。
CMFCToolBar::GetShowTooltips
呼叫 方法來判斷架構是否顯示工具提示。
CMFCToolBar::SetSiblingToolBar
指定工具列的同層級。
void SetSiblingToolBar(CMFCToolBar* pBrotherToolbar);
參數
pBrotherToolbar
[in]同層級工具列的指標。
備註
這個方法會啟用 [在一列顯示按鈕] 或 [顯示兩個數據列] 按鈕上的按鈕,當使用者顯示 [自定義] 彈出視窗時所顯示的按鈕。 當您想要讓使用者指定相關工具列出現在相同資料列或不同數據列時,請呼叫這個方法。
啟用工具列上出現的 [ 自定義 ] 按鈕之後,請呼叫此方法。 若要啟用 [ 自定義 ] 按鈕,請呼叫 CMFCToolBar::EnableCustomizeButton
方法。
若要擷取工具列的同層級,請呼叫 CMFCToolBar::GetSiblingToolBar
。
CMFCToolBar::SetSizes
指定所有工具列上的按鈕和影像大小。
static void __stdcall SetSizes(
SIZE sizeButton,
SIZE sizeImage);
參數
sizeButton
[in]工具列按鈕的大小,以像素為單位。
sizeImage
[in]工具列按鈕影像的大小,以像素為單位。
備註
工具列按鈕的預設大小為 23x22 圖元。 工具列按鈕影像的預設大小為16x15像素。
CMFCToolBar::GetImageSize
呼叫 方法來擷取工具欄按鈕影像的大小。 CMFCToolBar::GetButtonSize
呼叫 方法來擷取工具列按鈕的大小。
CMFCToolBar::SetToolBarBtnText
指定工具列上按鈕的屬性。
void SetToolBarBtnText(
UINT nBtnIndex,
LPCTSTR szText=NULL,
BOOL bShowText=TRUE,
BOOL bShowImage=TRUE);
參數
nBtnIndex
[in]工具列按鈕清單中的工具列按鈕以零起始的索引。
szText
[in]指定工具列按鈕的文字標籤。
bShowText
[in]如果此參數為 TRUE
,則架構會顯示文字標籤。 否則,架構會隱藏文字標籤。
bShowImage
[in]如果此參數為 TRUE
,架構會顯示工具列按鈕影像。 否則,架構會隱藏工具列按鈕影像。
備註
根據預設,架構會顯示工具列按鈕的影像,但不會顯示工具列按鈕的文字標籤。
在偵錯組建中,如果 nBtnIndex
未參考有效的工具列按鈕或工具列按鈕是分隔符,這個方法會產生判斷提示失敗。
CMFCToolBar::SetTwoRowsWithSibling
將工具列及其同層級放置在不同的數據列上。
void SetTwoRowsWithSibling();
備註
當使用者選取 [兩個數據列 ] 按鈕上的 [顯示按鈕] 按鈕時,架構會呼叫此方法。
CMFCToolBar::SetSiblingToolBar
呼叫 方法,以啟用 [一列] 上的 [顯示按鈕] 或 [在兩個數據列] 按鈕上顯示按鈕。 如果您呼叫 CMFCToolBar::SetSiblingToolBar
此工具列,同層級工具列會移至個別的數據列。 否則,此工具列會移至個別的數據列。
當使用者選取 [一列] 按鈕上的 [顯示按鈕] 時,架構會呼叫 CMFCToolBar::SetOneRowWithSibling
方法。
CMFCToolBar::SetUserImages
設定應用程式中使用者定義影像的集合。
static BOOL SetUserImages(CMFCToolBarImages* pUserImages);
參數
pUserImages
[in]用戶定義影像集合的指標。
傳回值
如果方法成功,則為非零;否則,如果指定的 CMFCToolBarImages
對象無效或影像大小與工具列的預設影像大小不同,則為 0。
備註
架構會使用使用者定義的影像來繪製使用者自定義的工具列按鈕。 所 pUserImages
指定的影像清單會在應用程式的所有工具列之間共用。
如果指定的 CMFCToolBarImages
物件無效或影像大小與工具列的預設影像大小不同,這個方法會在偵錯組建中產生判斷提示失敗。
OutlookDemo、ToolTipDemo 和 VisualStudioDemo 範例會使用此方法來設定使用者定義影像的全域集合。 他們會載入名為 UserImages.bmp 的檔案,該檔案位於應用程式的工作目錄中。
呼叫 'CMFCToolBar::GetUserImages 方法來擷取應用程式中用戶定義影像的集合。
CMFCToolBar::StretchPane
垂直或水平縮放工具列,並視需要重新定位按鈕。
virtual CSize StretchPane(
int nLength,
BOOL bVert);
參數
nLength
[in]以像素為單位的量,用來延展窗格。
bVert
[in]如果 TRUE
為 ,則垂直延展窗格。 如果 FALSE
為 ,則會水平縮放窗格。
傳回值
CSize
物件,指定工具列工作區的大小。
備註
這個方法會呼叫 CMFCToolBar::WrapToolBar
以重新置放延展工具列內的按鈕。
傳回值取決於呼叫 CMFCToolBar::CalcSize
。
CMFCToolBar::TranslateChar
如果指定的按鍵程式代碼對應至有效的鍵盤快捷方式,則執行按鈕命令。
virtual BOOL TranslateChar(UINT nChar);
參數
nChar
[in]指定虛擬金鑰程式代碼。 如需標準虛擬密鑰碼的清單,請參閱 Winuser.h
傳回值
FALSE
如果指定的按鍵程式代碼不可列印或未對應至有效的鍵盤快捷方式,則為 ; TRUE
如果指定的索引鍵程式代碼對應至下拉功能表選項,則為 ,否則會從 CMFCToolBar::ProcessCommand
傳回值。
備註
當按鍵與 Alt 鍵一起按下時,架構會呼叫這個方法。
CMFCToolBar::UpdateButton
更新指定按鈕的狀態。
void UpdateButton(int nIndex);
參數
nIndex
[in]指定要更新之按鈕之以零起始的索引。
備註
CMFCToolBar::WrapToolBar
重新定位指定維度內的工具列按鈕。
int WrapToolBar(
int nWidth,
int nHeight = 32767,
CDC* pDC = NULL,
int nColumnWidth = -1,
int nRowHeight = -1);
參數
nWidth
[in]工具列的最大寬度。
nHeight
[in]工具列的最大高度。 如果工具列浮動,則不會使用 。
pDC
[in]裝置內容的指標。 如果 NULL
為 ,則會使用工具列的裝置內容。
nColumnWidth
[in]按鈕寬度。 如果為 -1,則會使用目前的寬度。
[in] m
nRowHeight
按鈕高度。 如果為 -1,則會使用目前的高度。
傳回值
工具列上按鈕的數據列數。
備註
此方法會視需要在工具列內重新定位按鈕,將按鈕包裝至其他數據列。
CMFCToolBar::m_bDontScaleImages
指定是否要以高 DPI 模式調整工具列影像。
設定為 TRUE
以防止影像大小與按鈕大小不相符時調整影像。
AFX_IMPORT_DATA static BOOL m_bDontScaleImages;
另請參閱
階層架構圖表
類別
CMFCMenuBar
類
CMFCPopupMenuBar
類
CMFCDropDownToolBar
類
逐步解說:將控制項放在工具列上