共用方式為


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::AddBasicCommand 將功能表命令新增至使用者開啟功能表時一律顯示的命令清單。
CMFCToolBar::AddCommandUsage 遞增一個與指定命令相關聯的計數器。
CMFCToolBar::AddToolBarForImageCollection 將來自使用者介面資源的影像新增至應用程式中影像的集合。
CMFCToolBar::AdjustLayout 重新計算工具列的大小和位置。 (覆寫 CBasePane::AdjustLayout)。
CMFCToolBar::AdjustSize 重新計算工具列的大小。
CMFCToolBar::AllowChangeTextLabels 指定是否可以在工具列按鈕的影像下顯示文字標籤。
CMFCToolBar::AreTextLabels 指定影像底下的文字標籤目前是否顯示在工具列按鈕上。
CMFCToolBar::AutoGrayInactiveImages 啟用或停用自動產生非使用中的按鈕影像。
CMFCToolBar::ButtonToIndex 傳回這個工具列中指定 CMFCToolBarButton 之 Class 物件的索引。
CMFCToolBar::CalcFixedLayout 計算工具列的水準大小。 (覆寫 CBasePane::CalcFixedLayout。)
CMFCToolBar::CalcSize 架構在版面配置計算程式中呼叫。 (覆寫 CPane::CalcSize。)
CMFCToolBar::CanHandleSiblings 決定是否工具列和其同層級位於相同的窗格上。
CMFCToolBar::CleanUpImages 釋放配置給工具列影像的系統資源。
CMFCToolBar::CleanUpLockedImages 釋放配置給鎖定工具列影像的系統資源。
CMFCToolBar::CanBeClosed 指定使用者是否可以關閉工具列。 (覆寫 CBasePane::CanBeClosed。)
CMFCToolBar::CanBeRestored 判斷系統是否可以在自訂之後,將工具列還原至其原始狀態。
CMFCToolBar::CanFocus 指定窗格是否可以接收焦點。 (覆寫 CBasePane::CanFocus。)
CMFCToolBar::CanHandleSiblings 決定是否工具列和其同層級位於相同的窗格上。
CMFCToolBar::CommandToIndex 傳回工具列中具有指定命令識別碼的按鈕索引。
CMFCToolBar::Create 建立 CMFCToolBar 物件。
CMFCToolBar::CreateEx CMFCToolBar建立使用其他樣式選項的物件,例如大型圖示。
CMFCToolBar::Deactivate 停用工具列。
CMFCToolBar::EnableCustomizeButton 啟用或停用 工具列結尾出現的 [新增] 或 [移除按鈕 ] 按鈕。
CMFCToolBar::EnableDocking 允許將窗格停駐到主框架。 (覆寫 CBasePane::EnableDocking。)
CMFCToolBar::EnableLargeIcons 啟用或停用工具列按鈕上的大型圖示。
CMFCToolBar::EnableQuickCustomization 啟用或停用工具列的快速自訂,讓使用者可以按下 Alt 鍵,並將按鈕拖曳至新位置。
CMFCToolBar::EnableReflections 啟用或停用命令反映。
CMFCToolBar::EnableTextLabels 啟用或停用工具列按鈕影像底下的文字標籤。
CMFCToolBar::FromHandlePermanent 擷取包含指定視窗控制碼之 物件的指標 CMFCToolBar
CMFCToolBar::GetAllButtons 傳回工具列中按鈕的唯讀清單。
CMFCToolBar::GetAllToolbars 傳回應用程式中所有工具列的唯讀清單。
CMFCToolBar::GetBasicCommands 傳回應用程式中定義之基本命令的唯讀清單。
CMFCToolBar::GetButton 傳回具有指定工具列按鈕索引之物件的指標 CMFCToolBarButton
CMFCToolBar::GetButtonInfo 傳回指定索引處按鈕的命令識別碼、樣式和影像索引。
CMFCToolBar::GetButtonSize 傳回工具列上每個按鈕的維度。
CMFCToolBar::GetButtonStyle 傳回位於指定索引處之工具列按鈕的目前樣式。
CMFCToolBar::GetButtonText 傳回具有指定索引之按鈕的文字標籤。
CMFCToolBar::GetColdImages 傳回應用程式中冷工具列按鈕影像集合的指標。
CMFCToolBar::GetColumnWidth 傳回工具列按鈕的寬度。
CMFCToolBar::GetCommandButtons 傳回應用程式中所有工具列中具有指定命令識別碼的按鈕清單。
CMFCToolBar::GetCount 傳回工具列上的按鈕和分隔符號數目。
CMFCToolBar::GetCustomizeButton 擷取與工具列相關聯之物件的指標 CMFCCustomizeButton
CMFCToolBar::GetDefaultImage 傳回具有指定命令識別碼之工具列按鈕的預設影像索引。
CMFCToolBar::GetDisabledImages 傳回應用程式中用於停用工具列按鈕之影像集合的指標。
CMFCToolBar::GetDisabledMenuImages 傳回應用程式中用於停用功能表按鈕之影像集合的指標。
CMFCToolBar::GetDroppedDownMenu 擷取目前顯示其子功能表之功能表按鈕物件的指標。
CMFCToolBar::GetGrayDisabledButtons 指定停用按鈕的影像是一般按鈕影像的暗灰色版本,還是取自停用按鈕影像的集合。
CMFCToolBar::GetHighlightedButton 傳回目前反白顯示之工具列按鈕的指標。
CMFCToolBar::GetHotBorder 判斷工具列按鈕是否為熱追蹤。
CMFCToolBar::GetHotTextColor 傳回醒目提示工具列按鈕的文字色彩。
CMFCToolBar::GetHwndLastFocus 傳回視窗的控制碼,該視窗的輸入焦點就在工具列之前。
CMFCToolBar::GetIgnoreSetText 指定是否忽略設定按鈕標籤的呼叫。
CMFCToolBar::GetImageSize 傳回工具列按鈕影像的目前大小。
CMFCToolBar::GetImages 傳回應用程式中預設按鈕影像集合的指標。
CMFCToolBar::GetImagesOffset 傳回索引位移,用來在工具列按鈕影像的全域清單中尋找此工具列的工具列按鈕影像。
CMFCToolBar::GetInvalidateItemRect 擷取必須在指定索引處重新繪製按鈕的工作區區域。
CMFCToolBar::GetItemID 傳回指定索引處工具列按鈕的命令識別碼。
CMFCToolBar::GetItemRect 傳回位於指定索引處按鈕的周框。
CMFCToolBar::GetLargeColdImages 傳回應用程式中大型冷工具列按鈕影像集合的指標。
CMFCToolBar::GetLargeDisabledImages 傳回應用程式中大型停用工具列按鈕影像集合的指標。
CMFCToolBar::GetLargeImages 傳回應用程式中大型工具列按鈕影像集合的指標。
CMFCToolBar::GetLockedColdImages 傳回工具列中鎖定冷影像集合的指標。
CMFCToolBar::GetLockedDisabledImages 傳回工具列中已鎖定之已停用影像集合的指標。
CMFCToolBar::GetLockedImages 傳回工具列中鎖定按鈕影像集合的指標。
CMFCToolBar::GetLockedImageSize 傳回鎖定工具列影像的預設大小。
CMFCToolBar::GetLockedMenuImages 傳回工具列中鎖定工具列功能表影像集合的指標。
CMFCToolBar::GetMenuButtonSize 傳回應用程式中功能表按鈕的大小。
CMFCToolBar::GetMenuImageSize 傳回應用程式中功能表按鈕影像的大小。
CMFCToolBar::GetMenuImages 傳回應用程式中功能表按鈕影像集合的指標。
CMFCToolBar::GetOrigButtons 擷取工具列中非自訂按鈕的集合。
CMFCToolBar::GetOrigResetButtons 擷取工具列的非自訂重設按鈕集合。
CMFCToolBar::GetResourceID 擷取工具列的資源識別碼。
CMFCToolBar::GetRouteCommandsViaFrame 決定哪個物件,父框架或擁有者,將命令傳送至工具列。
CMFCToolBar::GetRowHeight 傳回工具列按鈕的高度。
CMFCToolBar::GetShowTooltips 指定是否顯示工具列按鈕的工具提示。
CMFCToolBar::GetSiblingToolBar 擷取工具列的同層級。
CMFCToolBar::GetUserImages 傳回應用程式中使用者定義工具列按鈕影像集合的指標。
CMFCToolBar::HitTest 傳回位於指定位置之工具列按鈕的索引。
CMFCToolBar::InsertButton 將按鈕插入工具列。
CMFCToolBar::InsertSeparator 將分隔符號插入工具列。
CMFCToolBar::InvalidateButton 使存在於所提供索引之工具列按鈕的工作區失效。
CMFCToolBar::IsAddRemoveQuickCustomize 判斷使用者是否可以使用 [自訂 ] 功能表選項來新增或移除工具列按鈕。
CMFCToolBar::IsAltCustomizeMode 指定是否 使用快速自訂 來拖曳按鈕。
CMFCToolBar::IsAutoGrayInactiveImages 指定是否啟用自動產生非作用中(非醒目提示)按鈕影像。
CMFCToolBar::IsBasicCommand 判斷命令是否位於基本命令清單中。
CMFCToolBar::IsButtonExtraSizeAvailable 判斷工具列是否可以顯示具有延伸框線的按鈕。
CMFCToolBar::IsButtonHighlighted 判斷工具列上的按鈕是否反白顯示。
CMFCToolBar::IsCommandPermitted 判斷是否允許命令。
CMFCToolBar::IsCommandRarelyUsed 判斷命令是否很少使用 (請參閱 CMFCToolBar::SetCommandUsageOptions )。
CMFCToolBar::IsCustomizeMode 指定工具列架構是否處於自訂模式。
CMFCToolBar::IsDragButton 判斷是否要拖曳工具列按鈕。
CMFCToolBar::IsExistCustomizeButton 判斷工具列是否包含 [ 自訂 ] 按鈕。
CMFCToolBar::IsFloating 判斷工具列是否浮動。
CMFCToolBar::IsLargeIcons 指定應用程式中的工具列目前是否顯示大型圖示。
CMFCToolBar::IsLastCommandFromButton 判斷最近執行的命令是否從指定的工具列按鈕傳送。
CMFCToolBar::IsLocked 判斷工具列是否已鎖定。
CMFCToolBar::IsOneRowWithSibling 判斷工具列及其同層級工具列是否位於相同的資料列上。
CMFCToolBar::IsUserDefined 指定工具列是否為使用者定義。
CMFCToolBar::LoadBitmap 從應用程式資源載入工具列影像。
CMFCToolBar::LoadBitmapEx 從應用程式資源載入工具列影像。 包含大型影像。
CMFCToolBar::LoadParameters 從 Windows 登錄載入全域工具列選項。
CMFCToolBar::LoadState 從 Windows 登錄載入工具列狀態資訊。 (覆寫 CPane::LoadState。)
CMFCToolBar::LoadToolBar 從應用程式資源載入工具列。
CMFCToolBar::LoadToolBarEx 使用 CMFCToolBarInfo 協助程式類別從應用程式資源載入工具列,讓應用程式能夠使用大型影像。
CMFCToolBar::OnChangeHot 當使用者選取工具列上的按鈕時,由架構呼叫。
CMFCToolBar::OnFillBackground 由架構 CBasePane::DoPaint 從 呼叫以填滿工具列背景。
CMFCToolBar::OnReset 將工具列還原為其原始狀態。
CMFCToolBar::OnSetAccData (覆寫 CBasePane::OnSetAccData。)
CMFCToolBar::OnSetDefaultButtonText 將工具列按鈕的文字還原為其預設狀態。
CMFCToolBar::OnUpdateCmdUI 在內部使用。
CMFCToolBar::RemoveAllButtons 從工具列移除所有按鈕。
CMFCToolBar::RemoveButton 從工具列中移除具有指定索引的按鈕。
CMFCToolBar::RemoveStateFromRegistry 從 Windows 登錄移除工具欄的狀態資訊。
CMFCToolBar::ReplaceButton 以另一個工具列按鈕取代工具列按鈕。
CMFCToolBar::ResetAll 將所有工具列還原到其原始狀態。
CMFCToolBar::ResetAllImages 清除應用程式中的所有工具列影像集合。
CMFCToolBar::RestoreOriginalState 還原工具列的原始狀態。
CMFCToolBar::SaveState 將工具列的狀態資訊儲存在 Windows 登錄中。 (覆寫 CPane::SaveState。)
CMFCToolBar::Serialize (覆寫 CBasePane::Serialize。)
CMFCToolBar::SetBasicCommands 設定使用者開啟功能表時一律顯示的命令清單。
CMFCToolBar::SetButtonInfo 設定工具列按鈕的命令識別碼、樣式和影像識別碼。
CMFCToolBar::SetButtonStyle 設定指定索引處工具列按鈕的樣式。
CMFCToolBar::SetButtonText 設定工具列按鈕的文字標籤。
CMFCToolBar::SetButtons 設定工具列的按鈕。
CMFCToolBar::SetCommandUsageOptions 指定很少使用的命令何時不會出現在應用程式的功能表中。
CMFCToolBar::SetCustomizeMode 啟用或停用應用程式中所有工具列的自訂模式。
CMFCToolBar::SetGrayDisabledButtons 指定工具列上的停用按鈕是暗灰色的,還是停用的影像用於停用的按鈕。
CMFCToolBar::SetHeight 設定工具列的高度。
CMFCToolBar::SetHotBorder 指定工具列按鈕是否為熱追蹤。
CMFCToolBar::SetHotTextColor 設定作用中工具列按鈕的文字色彩。
CMFCToolBar::SetLargeIcons 指定工具列按鈕是否顯示大型圖示。
CMFCToolBar::SetLockedSizes 設定工具列上鎖定按鈕和鎖定影像的大小。
CMFCToolBar::SetMenuSizes 設定工具列功能表按鈕及其影像的大小。
CMFCToolBar::SetNonPermittedCommands 設定使用者無法執行的命令清單。
CMFCToolBar::SetOneRowWithSibling 將工具列及其同層級放置在相同的資料列上。
CMFCToolBar::SetPermament 指定使用者是否可以關閉工具列。
CMFCToolBar::SetRouteCommandsViaFrame 指定父框架或擁有者是否會將命令傳送至工具列。
CMFCToolBar::SetShowTooltips 指定架構是否顯示工具提示。
CMFCToolBar::SetSiblingToolBar 指定工具列的同層級。
CMFCToolBar::SetSizes 指定所有工具列上的按鈕和影像大小。
CMFCToolBar::SetToolBarBtnText 指定工具列上按鈕的屬性。
CMFCToolBar::SetTwoRowsWithSibling 將工具列及其同層級放置在不同的資料列上。
CMFCToolBar::SetUserImages 設定應用程式中使用者定義影像的集合。
CMFCToolBar::StretchPane 垂直或水準延展工具列。 (覆寫 CBasePane::StretchPane。)
CMFCToolBar::TranslateChar 如果指定的按鍵程式碼對應至有效的鍵盤快速鍵,則執行按鈕命令。
CMFCToolBar::UpdateButton 更新指定按鈕的狀態。
CMFCToolBar::WrapToolBar 重新置放指定維度內的工具列按鈕。

受保護的方法

名稱 描述
CMFCToolBar::AllowShowOnList 判斷工具列是否顯示在 [自訂 ] 對話方塊的 [工具列 ] 窗格 清單中
CMFCToolBar::CalcMaxButtonHeight 計算工具列中按鈕的最大高度。
CMFCToolBar::DoPaint 重新繪出工具列。
CMFCToolBar::DrawButton 重新繪出工具列按鈕。
CMFCToolBar::DrawSeparator 在工具列上重新繪出分隔符號。
CMFCToolBar::OnUserToolTip 當按鈕的工具提示即將顯示時,由架構呼叫。

資料成員

名稱 描述
CMFCToolBar::m_bDontScaleImages 指定是否要以高 DPI 模式縮放工具列影像。
CMFCToolBar::m_dblLargeImageRatio 指定大型影像維度(高度或寬度)與一般影像維度之間的比率。

備註

若要將 CMFCToolBar 物件併入您的應用程式,請遵循下列步驟:

  1. CMFCToolBar 物件新增至主框架視窗。

  2. 當您處理主框架視窗的WM_CREATE訊息時,請呼叫 CMFCToolBar::CreateCMFCToolBar::CreateEx 來建立工具列並指定其樣式。

  3. 呼叫 CBasePane::EnableDocking 以指定停駐樣式。

若要插入特殊按鈕,例如下拉式方塊或下拉式工具列,請在父資源中保留虛擬按鈕,並使用 取代運行 CMFCToolBar::ReplaceButton 時間的虛擬按鈕。 如需詳細資訊,請參閱 逐步解說:將控制項放在工具列上

CMFCToolBar是 MFC 程式庫類別 CMFCMenuBar 類別、 CMFCPopupMenuBar 類別和 CMFCDropDownToolBar 類別 的基類。

範例

下例示範如何在 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

繼承階層架構

CObject

CCmdTarget

CWnd

CBasePane

CPane

CMFCBaseToolBar

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 如果 uiResIDuiBmpResID 未指定有效的資源,或發生另一個錯誤,則為 。

備註

呼叫此方法以載入具有工具列影像的點陣圖,並將它新增至工具列影像的集合。 這個方法會建立暫存工具列物件,並呼叫 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]指定非使用中影像的亮度百分比。 如果 bEnableFALSE ,則會忽略此值。

bRedrawAllToolbars
[in]布林值,指定是否要重新繪製應用程式中的所有工具列。 如果此參數為 TRUE ,這個方法會重新繪製所有工具列。

備註

如果 bEnableTRUE ,架構會使用 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 方法來計算工具列的大小。 如果 bStretchTRUELM_STRETCH 則會傳遞 參數的 dwMode 旗標。 如果 bHorzTRUELM_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 而不是當您想要提供特定樣式時。 例如,將 設定 dwCtrlStyleTBSTYLE_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 指定有效的命令識別碼,且 bEnableTRUE ,則一律會顯示 [自訂] 按鈕。 按鈕具有小型向下箭號,並開啟包含命令的功能表。 此命令會使用 所 strCustomizeText 指定的文字標籤。 如果 bQuickCustomize 也是 TRUE ,功能表會顯示 [ 新增] 或 [移除按鈕] 選項。

架構會在 指定的 iCustomizeCmd 專案之前,動態地將任何不符合工具列區域中的按鈕新增至功能表。 形箭號會顯示在向下箭號旁邊。

CMFCToolBar::EnableDocking

允許將窗格停駐到主框架。

virtual void EnableDocking(DWORD dwAlignment);

參數

dwAlignment
[in]指定要啟用的停駐對齊方式。

備註

這個方法會將資料成員設定 CBasePane::m_dwControlBarStyleAFX_CBRS_FLOATCBasePane::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 ,以停用衍生自 CMFCToolBarCMFCToolBar::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::AddBasicCommandCMFCToolBar::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 會在指定的索引處尋找工具列按鈕,並擷取按鈕的命令識別碼、樣式和影像索引。

如果指定索引處的按鈕不存在,則架構會在方法傳回時,將 和 設定 nIDnStyle 為 0,並將 設定 iImage 為 -1。

CMFCToolBar::GetButtonSize

傳回工具列上每個按鈕的維度。

CSize GetButtonSize() const;

傳回值

CSize Class 物件,指定工具列上每個按鈕的維度。

備註

呼叫 CMFCToolBar::SetSizesCMFCToolBar::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::SetButtonTextCMFCToolBar::SetToolBarBtnText 以設定文字標籤。

CMFCToolBar::GetColdImages

傳回應用程式中冷工具列按鈕影像集合的指標。

static CMFCToolBarImages* GetColdImages();

傳回值

冷工具列按鈕影像集合的指標。

備註

冷影像是使用者未與工具列按鈕互動時所使用的影像。 呼叫 CMFCToolBar::LoadBitmapExCMFCToolBar::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::GetHotBorderCMFCToolBar::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 。 如果提供的索引中沒有任何按鈕存在, lpRectRECT 會收到初始化為零的物件。

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::LoadBitmapExCMFCToolBar::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::AddBasicCommandCMFCToolBar::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 為 。

備註

當發生下列一或多個情況時,方法 IsCommandRarelyUsedFALSE 傳回:

  • 指定的命令屬於基本命令的清單

  • 指定的命令是其中一個標準命令

  • 架構處於自訂模式

  • 基本命令的清單是空的

  • 超過 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]參考作用中工具列影像之點陣圖的資源識別碼。

傳回值

如果方法成功,則為非零,否則為零。

備註

架構會在初始化期間呼叫此方法,以載入與工具列相關聯的影像。

範例

下列範例示範如何在 類別中使用 LoadToolBarCMFCToolBar 方法。 此程式碼片段是 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 為 。

備註

當工具列按鈕的工具提示即將顯示時,架構會呼叫此方法。 如果 OnUserToolTipTRUE 回 ,則架構會顯示工具提示,其中包含 中 strTTTextOnUserToolTip 回的文字。 否則,工具提示會包含按鈕文字。

覆寫 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 範例。

範例

下列範例示範如何在 類別中使用 ReplaceButtonCMFCToolBar 方法。 此程式碼片段是 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::LoadToolBarCMFCToolBar::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::GetHotBorderCMFCToolBar::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] mnRowHeight按鈕高度。 如果為 -1,則會使用目前的高度。

傳回值

工具列上按鈕的資料列數。

備註

此方法會視需要在工具列內重新置放按鈕,將按鈕包裝至其他資料列。

CMFCToolBar::m_bDontScaleImages

指定是否要以高 DPI 模式調整工具列影像。 設定為 TRUE 以防止影像大小與按鈕大小不相符時調整影像。

AFX_IMPORT_DATA static BOOL m_bDontScaleImages;

另請參閱

階層架構圖表
類別
CMFCMenuBar
CMFCPopupMenuBar
CMFCDropDownToolBar
逐步解說:將控制項放在工具列上