共用方式為


CToolBarCtrl 類別

提供 Windows 工具列通用控制項的功能。

語法

class CToolBarCtrl : public CWnd

成員

公用建構函式

名稱 描述
CToolBarCtrl::CToolBarCtrl 建構 CToolBarCtrl 物件。

公用方法

名稱 描述
CToolBarCtrl::AddBitmap 將一或多個點陣圖按鈕影像新增至工具列控件可用的按鈕影像清單。
CToolBarCtrl::AddButtons 將一或多個按鈕新增至工具列控件。
CToolBarCtrl::AddString 將傳遞為資源識別元的新字串新增至工具列的內部字串清單。
CToolBarCtrl::AddStrings 將新的字串或字串,當做分隔字串緩衝區 NULL的指標傳遞至工具列的內部字串清單。
CToolBarCtrl::AutoSize 調整工具列控制件的大小。
CToolBarCtrl::ChangeBitmap 變更目前工具列控件中按鈕的點陣圖。
CToolBarCtrl::CheckButton 檢查或清除工具列控制件中的指定按鈕。
CToolBarCtrl::CommandToIndex 擷取與指定命令標識符相關聯之按鈕之以零起始的索引。
CToolBarCtrl::Create 建立工具列控件,並將它附加至 CToolBarCtrl 物件。
CToolBarCtrl::CreateEx 使用指定的 Windows 擴充樣式建立工具列控件,並將它附加至 CToolBarCtrl 物件。
CToolBarCtrl::Customize 顯示 [自訂工具列] 對話框。
CToolBarCtrl::DeleteButton 從工具列控件刪除按鈕。
CToolBarCtrl::EnableButton 啟用或停用工具列控制件中的指定按鈕。
CToolBarCtrl::GetAnchorHighlight 擷取工具列的錨點醒目提示設定。
CToolBarCtrl::GetBitmap 擷取與工具列中按鈕相關聯的點陣圖索引。
CToolBarCtrl::GetBitmapFlags 取得與工具列位圖相關聯的旗標。
CToolBarCtrl::GetButton 擷取工具列控件中指定按鈕的相關信息。
CToolBarCtrl::GetButtonCount 擷取工具列控件中目前按鈕的計數。
CToolBarCtrl::GetButtonInfo 擷取工具列中按鈕的資訊。
CToolBarCtrl::GetButtonSize 擷取工具列按鈕的目前寬度和高度,以像素為單位。
CToolBarCtrl::GetColorScheme 擷取目前工具列控件的色彩配置。
CToolBarCtrl::GetDisabledImageList 擷取工具列控件用來顯示已停用按鈕的影像清單。
CToolBarCtrl::GetDropTarget IDropTarget擷取工具列控件的介面。
CToolBarCtrl::GetExtendedStyle 擷取工具列控件的延伸樣式。
CToolBarCtrl::GetHotImageList 擷取工具列控件用來顯示「作用中」按鈕的影像清單。 當滑鼠指標位於其上方時,會出現醒目提示的快捷按鈕。
CToolBarCtrl::GetHotItem 擷取工具列中作用中專案的索引。
CToolBarCtrl::GetImageList 擷取工具列控件用來顯示其默認狀態按鈕的影像清單。
CToolBarCtrl::GetInsertMark 擷取工具列目前的插入標記。
CToolBarCtrl::GetInsertMarkColor 擷取用來繪製工具列插入標記的色彩。
CToolBarCtrl::GetItemRect 擷取工具列控件中按鈕的周框。
CToolBarCtrl::GetMaxSize 擷取工具列中所有可見按鈕和分隔符的總大小。
CToolBarCtrl::GetMaxTextRows 擷取工具列按鈕上顯示的最大文字列數。
CToolBarCtrl::GetMetrics 擷取工具列控件的計量。
CToolBarCtrl::GetPadding 擷取目前工具列控件的水準和垂直邊框間距。
CToolBarCtrl::GetPressedImageList 擷取目前工具列控件用來表示處於已按下狀態的按鈕的影像清單。
CToolBarCtrl::GetRect 擷取指定工具列按鈕的周框。
CToolBarCtrl::GetRows 擷取工具列中目前顯示之按鈕的數據列數目。
CToolBarCtrl::GetState 擷取工具列控件中指定按鈕狀態的相關信息,例如是否啟用、按下或核取。
CToolBarCtrl::GetString 擷取工具列字串。
CToolBarCtrl::GetStyle 擷取目前用於工具列控件的樣式。
CToolBarCtrl::GetToolTips 擷取工具提示控件的句柄,如果有的話,與工具欄控件相關聯。
CToolBarCtrl::HideButton 隱藏或顯示工具列控制件中的指定按鈕。
CToolBarCtrl::HitTest 判斷某個點位於工具列控件的位置。
CToolBarCtrl::Indeterminate 設定或清除工具列控件中指定按鈕的不確定(灰色)狀態。
CToolBarCtrl::InsertButton 在工具列控制件中插入按鈕。
CToolBarCtrl::InsertMarkHitTest 擷取工具列中某個點的插入標記資訊。
CToolBarCtrl::IsButtonChecked 指出是否已檢查工具列控制件中的指定按鈕。
CToolBarCtrl::IsButtonEnabled 指出工具列控制件中的指定按鈕是否已啟用。
CToolBarCtrl::IsButtonHidden 指出工具列控制件中的指定按鈕是否隱藏。
CToolBarCtrl::IsButtonHighlighted 檢查工具列按鈕的醒目提示狀態。
CToolBarCtrl::IsButtonIndeterminate 指出工具列控件中指定按鈕的狀態是否不確定(灰色)。
CToolBarCtrl::IsButtonPressed 指出是否按下工具列控件中的指定按鈕。
CToolBarCtrl::LoadImages 將點陣圖載入工具列控件的影像清單。
CToolBarCtrl::MapAccelerator 將快捷鍵字元對應至工具列按鈕。
CToolBarCtrl::MarkButton 設定工具列控制件中指定按鈕的醒目提示狀態。
CToolBarCtrl::MoveButton 將按鈕從一個索引移到另一個索引。
CToolBarCtrl::PressButton 在工具列控件中按下或放開指定的按鈕。
CToolBarCtrl::ReplaceBitmap 以新的點陣圖取代目前工具列控件中的現有點陣圖。
CToolBarCtrl::RestoreState 還原工具列控件的狀態。
CToolBarCtrl::SaveState 儲存工具列控件的狀態。
CToolBarCtrl::SetAnchorHighlight 設定工具列的錨點醒目提示設定。
CToolBarCtrl::SetBitmapSize 設定要新增至工具列控件的點陣圖影像大小。
CToolBarCtrl::SetButtonInfo 設定工具列中現有按鈕的資訊。
CToolBarCtrl::SetButtonSize 設定要新增至工具列控件的按鈕大小。
CToolBarCtrl::SetButtonStructSize 指定結構的大小 TBBUTTON
CToolBarCtrl::SetButtonWidth 設定工具列控制件中的最小和最大按鈕寬度。
CToolBarCtrl::SetCmdID 設定按下指定按鈕時要傳送至擁有者視窗的命令標識碼。
CToolBarCtrl::SetColorScheme 設定目前工具列控制件的色彩配置。
CToolBarCtrl::SetDisabledImageList 設定工具列控制件將用來顯示已停用按鈕的影像清單。
CToolBarCtrl::SetDrawTextFlags 設定 Win32 函 DrawText式中的旗標,此函式用來繪製指定矩形中的文字,格式會根據旗標的設定方式進行格式化。
CToolBarCtrl::SetExtendedStyle 設定工具列控制件的延伸樣式。
CToolBarCtrl::SetHotImageList 設定工具列控制件將用來顯示「作用中」按鈕的影像清單。
CToolBarCtrl::SetHotItem 設定工具列中的作用中專案。
CToolBarCtrl::SetImageList 設定工具列將用來顯示處於預設狀態的按鈕的影像清單。
CToolBarCtrl::SetIndent 設定工具列控制件中第一個按鈕的縮排。
CToolBarCtrl::SetInsertMark 設定工具列目前的插入標記。
CToolBarCtrl::SetInsertMarkColor 設定用來繪製工具列插入標記的色彩。
CToolBarCtrl::SetMaxTextRows 設定工具列按鈕上顯示的文字列數目上限。
CToolBarCtrl::SetMetrics 設定工具列控制件的計量。
CToolBarCtrl::SetOwner 設定視窗以接收工具列控件的通知訊息。
CToolBarCtrl::SetPadding 設定目前工具列控件的水平和垂直邊框間距。
CToolBarCtrl::SetPressedImageList 設定目前工具列控件用來表示處於已按下狀態的按鈕的影像清單。
CToolBarCtrl::SetRows 設定工具列中顯示的按鈕列數。
CToolBarCtrl::SetState 設定工具列控制件中指定按鈕的狀態。
CToolBarCtrl::SetStyle 設定工具列控件的樣式。
CToolBarCtrl::SetToolTips 將工具提示控制項與工具列控件產生關聯。
CToolBarCtrl::SetWindowTheme 設定工具列控件的可視化樣式。

備註

此控件(因此類別 CToolBarCtrl )僅適用於在 Windows 95/98 和 Windows NT 3.51 版和更新版本下執行的程式。

Windows 工具列通用控制項是包含一或多個按鈕的矩形子視窗。 這些按鈕可以顯示位圖影像、字串或兩者。 當使用者選擇按鈕時,它會將命令訊息傳送至工具列的擁有者視窗。 一般而言,工具列中的按鈕會對應至應用程式功能表中的專案;他們提供更直接的方式讓使用者存取應用程式的命令。

CToolBarCtrl 物件包含數個重要的內部數據結構:按鈕影像位圖或影像清單、按鈕標籤字串清單,以及將影像和/或字串與按鈕的位置、樣式、狀態和命令標識碼建立關聯的結構清單 TBBUTTON 。 這些數據結構的每個元素都會由以零起始的索引來參考。 您必須先設定這些數據結構,才能使用 CToolBarCtrl 物件。 字串清單只能用於按鈕標籤;您無法從工具列擷取字串。

若要使用 CToolBarCtrl 物件,您通常會遵循下列步驟:

  1. 建構 CToolBarCtrl 物件。

  2. 呼叫 Create 以建立 Windows 工具列通用控件,並將它附加至 CToolBarCtrl 物件。 使用樣式來指出工具列的樣式,例如 TBSTYLE_TRANSPARENT 透明工具列或 TBSTYLE_DROPDOWN 支援下拉式樣式按鈕的工具列。

  3. 識別您希望工具列上的按鈕顯示方式:

  4. 藉由呼叫 AddButtons,將按鈕結構新增至工具列。

  5. 如果您想要在不是 CFrameWnd的擁有者視窗中使用工具列按鈕的工具提示,您必須處理工具列擁有者視窗中的訊息,如處理TTN_NEEDTEXT工具提示通知中所述。 如果工具列的父視窗衍生自 CFrameWnd,則會顯示工具提示,而不需要您任何額外的工作,因為 CFrameWnd 提供默認處理程式。

  6. 如果您想要讓使用者能夠自定義工具列,請在擁有者視窗中處理自定義通知訊息,如處理自定義通知中所述

您可以使用 SaveState 將工具列控件的目前狀態儲存在登錄中,並根據 RestoreState 先前儲存在登錄中的資訊還原狀態。 除了在應用程式使用之間儲存工具列狀態之外,應用程式通常會在用戶開始自定義工具列之前儲存狀態,以防使用者稍後想要將工具列還原為其原始狀態。

支援 Internet Explorer 4.0 版和更新版本

為了支援 Internet Explorer 4.0 版和更新版本中引進的功能,MFC 提供工具列控件的影像清單支援和透明且一般樣式。

透明工具列可讓工具列底下的用戶端透過 顯示。 若要建立透明工具列,請使用 TBSTYLE_FLATTBSTYLE_TRANSPARENT 樣式。 透明工具列功能熱追蹤;也就是說,當滑鼠指標移至工具列上的作用中按鈕時,按鈕的外觀就會變更。 只使用樣式建立的 TBSTYLE_FLAT 工具列將包含不透明的按鈕。

影像清單支援可讓控件擁有更大的預設行為、經常性影像和已停用影像的彈性。 使用 GetImageListGetHotImageListGetDisabledImageList 搭配透明工具列,根據影像的狀態操作影像:

如需使用CToolBarCtrl的詳細資訊,請參閱 控制項和使用 CToolBarCtrl

繼承階層架構

CObject

CCmdTarget

CWnd

CToolBarCtrl

需求

頁眉: afxcmn.h

CToolBarCtrl::AddBitmap

將一或多個按鈕影像新增至工具列控件中儲存的按鈕影像清單。

int AddBitmap(
    int nNumButtons,
    UINT nBitmapID);

int AddBitmap(
    int nNumButtons,
    CBitmap* pBitmap);

參數

nNumButtons
點陣圖中的按鈕影像數目。

nBitmapID
位圖的資源標識碼,其中包含要新增的按鈕影像或影像。

pBitmap
CBitmap物件的指標,其中包含要新增的按鈕影像或影像。

傳回值

如果成功,則為第一個新影像的以零起始的索引;否則 - 1。

備註

您可以在將點陣圖新增至工具列之前,使用 Windows API CreateMappedBitmap 來對應色彩。 如果您將指標傳遞至 CBitMap 物件,您必須確定點陣圖在工具列終結之前不會終結。

CToolBarCtrl::AddButtons

將一或多個按鈕新增至工具列控件。

BOOL AddButtons(
    int nNumButtons,
    LPTBBUTTON lpButtons);

參數

nNumButtons
要新增的按鈕數目。

lpButtons
結構陣列的 TBBUTTON 位址,其中包含要新增之按鈕的相關信息。 陣列中的項目數目必須與 所 nNumButtons指定的按鈕相同。

傳回值

如果成功則不為零,否則為 0。

備註

指標 lpButtons 指向結構的陣列 TBBUTTON 。 每個 TBBUTTON 結構都會將要新增的按鈕與按鈕的樣式、影像和/或字串、命令識別元、狀態和使用者定義資料產生關聯:

typedef struct _TBBUTTON {
    int iBitmap;    // zero-based index of button image
    int idCommand;  // command to be sent when button pressed
    BYTE fsState;   // button state--see below
    BYTE fsStyle;   // button style--see below
    DWORD dwData;   // application-defined value
    int iString;    // zero-based index of button label string
} TBBUTTON;

成員如下所示:

  • iBitmap

    按鈕影像的以零起始的索引,如果沒有此按鈕的影像,則為 -1。

  • idCommand

    與按鈕相關聯的命令標識碼。 選擇按鈕時,此標識碼會在訊息中 WM_COMMAND 傳送。 fsStyle如果成員具有 TBSTYLE_SEP 值,這個成員必須是零。

  • fsState

    按鈕狀態旗標。 它可以是下列值的組合:

    • TBSTATE_CHECKED 按鈕具有 TBSTYLE_CHECKED 樣式,並正在按下。

    • TBSTATE_ENABLED 按鈕接受用戶輸入。 沒有此狀態的按鈕不接受使用者輸入,且呈現灰色。

    • TBSTATE_HIDDEN 按鈕不可見且無法接收使用者輸入。

    • TBSTATE_INDETERMINATE 按鈕呈現灰色。

    • TBSTATE_PRESSED 正在按下按鈕。

    • TBSTATE_WRAP 換行符緊接在按鈕後面。 按鈕也必須具有 TBSTATE_ENABLED 狀態。

  • fsStyle

    按鈕樣式。 它可以是下列值的組合:

    • TBSTYLE_BUTTON 建立標準按鈕。

    • TBSTYLE_CHECK 建立按鈕,在每次使用者按下時,在按下和未壓縮的狀態之間切換。 按鈕處於按下狀態時,其背景色彩會不同。

    • TBSTYLE_CHECKGROUP 建立保持按下狀態的核取按鈕,直到按下群組中的另一個按鈕為止。

    • TBSTYLE_GROUP 建立一個按鈕,在按下群組中的另一個按鈕之前保持按下。

    • TBSTYLE_SEP 建立分隔符,提供按鈕群組之間的小間距。 具有此樣式的按鈕不會接收用戶輸入。

  • dwData

    使用者定義的數據。

  • iString

    以零起始的字串索引,以做為按鈕的標籤,如果沒有此按鈕的字串,則為 -1。

您提供的影像和/或字串,其索引之前必須使用 、 AddString和/或 AddStrings新增至工具列控件的清單AddBitmap

CToolBarCtrl::AddString

將傳遞為資源識別元的新字串新增至工具列的內部字串清單。

int AddString(UINT nStringID);

參數

nStringID
要新增至工具列控件字串清單之字串資源的資源標識碼。

傳回值

如果成功,則為第一個新字串之以零起始的索引;否則為 -1。

CToolBarCtrl::AddStrings

將新的字串或字串加入工具列控制元件可用的字串清單中。

int AddStrings(LPCTSTR lpszStrings);

參數

lpszStrings
包含一或多個 NULL終止字串的緩衝區位址,以新增至工具列的字串清單。 最後一個字串必須以兩 NULL 個字元終止。

傳回值

如果成功,則為第一個新字串之以零起始的索引;否則為 -1。

備註

緩衝區中的字串必須以 NULL 字元分隔。 您必須確定最後一個字串有兩 NULL 個終止符。 若要正確格式化常數位元串,您可以將它寫入為:

// one null added automatically
lpszStrings = _T("Only one string to add\0");

or:

// adds three strings with one call
lpszStrings = _T("String 1\0String 2\0String 3\0");

您不應該將 對象傳遞CString至此函式,因為 不可能在 中CString有多個NULL字元。

CToolBarCtrl::AutoSize

調整整個工具列控制件的大小。

void AutoSize();

備註

當父視窗的大小變更或工具列的大小變更時,您應該呼叫此函式(例如當您設定按鈕或點陣圖大小,或新增字串時)。

CToolBarCtrl::ChangeBitmap

變更目前工具列控件中按鈕的點陣圖。

BOOL ChangeBitmap(
    int idButton,
    int iBitmap);

參數

idButton
[in]要接收新點陣圖之按鈕的命令標識碼。

iBitmap
[in]目前工具列控件影像清單中的影像以零起始的索引。

傳回值

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

備註

如果這個方法成功,系統會在指定的按鈕中顯示指定的影像。

這個方法會傳送 TB_CHANGEBITMAP 訊息,如 Windows SDK 中所述。

範例

下列程式代碼範例會將 [檔案儲存] 按鈕的點陣圖變更為 [關於] 按鈕的點陣圖。

{
   // Change the bitmap for the File Save button, whose
   // command ID is ID_FILE_SAVE, to the bitmap for the
   // About button, whose index is 7.
   CToolBarCtrl &m_toolBarCtrl = m_wndToolBar.GetToolBarCtrl();
   BOOL bRet = m_toolBarCtrl.ChangeBitmap(ID_FILE_SAVE, 7);
}

CToolBarCtrl::CheckButton

檢查或清除工具列控制件中的指定按鈕。

BOOL CheckButton(
    int nID,
    BOOL bCheck = TRUE);

參數

nID
要檢查或清除之按鈕的命令標識碼。

bCheck
TRUE 若要核取按鈕, FALSE 請加以清除。

傳回值

如果成功則不為零,否則為 0。

備註

核取按鈕時,它似乎已按下。 如果您要變更多個按鈕狀態,請考慮改為呼叫 SetState

CToolBarCtrl::CommandToIndex

擷取與指定命令標識符相關聯之按鈕之以零起始的索引。

UINT CommandToIndex(UINT nID) const;

參數

nID
您要尋找其按鈕索引的命令識別碼。

傳回值

與命令標識符相關聯的按鈕以零起始的索引。

備註

CToolBarCtrl::Create

建立工具列控件,並將它附加至 CToolBarCtrl 物件。

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

參數

dwStyle
指定工具列控制件的樣式。 工具列必須一律具有 WS_CHILD 樣式。 此外,您可以指定工具列樣式和視窗樣式的任何組合,如<備註>所述。

rect
選擇性地指定工具列控制件的大小和位置。 它可以是 CRect 對象或 RECT 結構。

pParentWnd
指定工具列控制件的父視窗。 它不得為 NULL

nID
指定工具列控制件的識別碼。

傳回值

如果成功則不為零,否則為 0。

備註

您會在兩個步驟中建構 CToolBarCtrl 。 首先,呼叫 建構函式,然後呼叫 Create,這會建立工具列控件並將它附加至 CToolBarCtrl 物件。 將下列視窗樣式套用至工具列控制件。

  • WS_CHILD 總是

  • WS_VISIBLE 通常

  • WS_DISABLED 很少

如需窗口樣式的描述,請參閱 CreateWindow Windows SDK。

選擇性地套用通用控件樣式的組合,如 Windows SDK 中所述。

將工具列樣式的組合套用至控件或按鈕本身。 樣式會在 Windows SDK 的工具列控制件和按鈕樣式主題中說明。

若要使用擴充工具列樣式,請在呼叫 之後呼叫 SetExtendedStyle Create。 若要建立具有擴充視窗樣式的工具列,請呼叫 CToolBarCtrl::CreateEx 而不是 Create

工具列控件會自動設定工具列視窗的大小和位置。 高度是根據工具列中按鈕的高度。 寬度與父視窗工作區的寬度相同。 CCS_TOPCCS_BOTTOM 樣式會決定工具列是否位於工作區的頂端或底部。 根據預設,工具列具有 CCS_TOP 樣式。

CToolBarCtrl::CreateEx

建立控件(子視窗),並將它與 CToolBarCtrl 對象產生關聯。

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

參數

dwExStyle
指定要建立之控件的擴充樣式。 如需擴充 Windows 樣式的清單,請參閱 dwExStyle Windows SDK 中的 參數 CreateWindowEx

dwStyle
指定工具列控制件的樣式。 工具列必須一律具有 WS_CHILD 樣式。 此外,您可以指定工具列樣式和視窗樣式的任何組合,如的 Create所述。

rect
結構的參考 RECT ,描述要建立之視窗的大小和位置,在的用戶端座標中 pParentWnd

pParentWnd
控件父系之視窗的指標。

nID
控制件的子視窗識別碼。

傳回值

如果成功則為非零;否則為 0。

備註

使用 CreateEx 而不是 Create 套用延伸的 Windows 樣式,由 Windows 擴充樣式前置詞 WS_EX_所指定。 CreateEx 使用 所 dwExStyle指定的擴充 Windows 樣式來建立 控件。 使用 SetExtendedStyle設定控件特有的擴充樣式。 例如,使用 CreateEx 來設定 之類的樣式WS_EX_CONTEXTHELP,但使用 SetExtendedStyle 來設定 這類樣式。TBSTYLE_EX_DRAWDDARROWS 如需詳細資訊,請參閱 Windows SDK 中工具列擴充樣式中所述 的樣式

CToolBarCtrl::CToolBarCtrl

建構 CToolBarCtrl 物件。

CToolBarCtrl();

備註

您必須呼叫 Create ,讓工具列可供使用。

CToolBarCtrl::Customize

顯示 [自訂工具列] 對話框。

void Customize();

備註

此對話框可讓用戶藉由新增和刪除按鈕來自定義工具列。 若要支援自定義,工具列的父視窗必須處理自定義通知訊息,如處理自定義通知中所述。 您的工具列也必須使用 CCS_ADJUSTABLE 樣式來建立,如 中所述 CToolBarCtrl::Create

CToolBarCtrl::DeleteButton

從工具列控件刪除按鈕。

BOOL DeleteButton(int nIndex);

參數

nIndex
要刪除之按鈕的以零起始的索引。

傳回值

如果成功則不為零,否則為 0。

備註

CToolBarCtrl::EnableButton

啟用或停用工具列控制件中的指定按鈕。

BOOL EnableButton(
    int nID,
    BOOL bEnable = TRUE);

參數

nID
要啟用或停用之按鈕的命令標識碼。

bEnable
TRUE 表示啟用按鈕; FALSE 以停用按鈕。

傳回值

如果成功則不為零,否則為 0。

備註

啟用按鈕時,可以按下並核取按鈕。 如果您要變更多個按鈕狀態,請考慮改為呼叫 SetState

CToolBarCtrl::GetAnchorHighlight

擷取工具列的錨點醒目提示設定。

BOOL GetAnchorHighlight() const;

傳回值

如果非零,則會啟用錨點醒目提示。 如果為零,則會停用錨點醒目提示。

備註

此成員函式會實作 Win32 訊息 TB_GETANCHORHIGHLIGHT 的行為,如 Windows SDK 中所述。

CToolBarCtrl::GetBitmap

擷取與工具列中按鈕相關聯的點陣圖索引。

int GetBitmap(int nID) const;

參數

nID
要擷取位圖索引的按鈕命令標識碼。

傳回值

如果成功,則傳回位圖的索引,否則傳回零。

備註

在 Windows SDK 中實作 的功能 TB_GETBITMAP

CToolBarCtrl::GetBitmapFlags

從工具列擷取位圖旗標。

UINT GetBitmapFlags() const;

傳回值

UINT如果顯示可以支援大型工具列位圖,TBBF_LARGE則為 已設定旗標的 ,否則為清除。

備註

您應該在建立工具列之後呼叫它,但在將點陣圖新增至工具列之前。 傳回值表示顯示器是否支援大型點陣圖。 如果顯示支援大型點陣圖,而且如果您選擇使用這些點陣圖,請在使用 AddBitmap新增大型點陣圖之前呼叫 SetBitmapSizeSetButtonSize

CToolBarCtrl::GetButton

擷取工具列控件中指定按鈕的相關信息。

BOOL GetButton(
    int nIndex,
    LPTBBUTTON lpButton) const;

參數

nIndex
要擷取資訊的按鈕以零起始的索引。

lpButton
TBBUTTON要接收按鈕資訊複本之 結構的位址。 如需 結構的相關信息,TBBUTTON請參閱 CToolBarCtrl::AddButtons

傳回值

如果成功則不為零,否則為 0。

CToolBarCtrl::GetButtonCount

擷取工具列控件中目前按鈕的計數。

int GetButtonCount() const;

傳回值

按鈕的計數。

CToolBarCtrl::GetButtonInfo

擷取工具列中按鈕的資訊。

int GetButtonInfo(
    int nID,
    TBBUTTONINFO* ptbbi) const;

參數

nID
按鈕標識碼。

ptbbi
接收按鈕資訊之 結構的指標 TBBUTTONINFO

傳回值

如果成功,則為按鈕的以零起始的索引;否則為 -1。

備註

此成員函式會實作 Win32 訊息 TB_GETBUTTONINFO 的行為,如 Windows SDK 中所述。

CToolBarCtrl::GetButtonSize

取得工具列按鈕的大小。

DWORD GetButtonSize() const;

傳回值

DWORD值,分別包含和HIWORD中的LOWORD寬度和高度值。

CToolBarCtrl::GetButtonText

擷取目前工具列控件上指定按鈕的顯示文字。

CString GetButtonText(int idButton) const;

參數

idButton
[in]擷取顯示文字之按鈕的標識碼。

傳回值

CString,包含指定按鈕的顯示文字。

備註

這個方法會傳送 TB_GETBUTTONTEXT 訊息,如 Windows SDK 中所述。

CToolBarCtrl::GetColorScheme

擷取目前工具列控件的色彩配置。

BOOL GetColorScheme(COLORSCHEME* lpColorScheme) const;

參數

lpColorScheme
[out] COLORSCHEME 接收色彩配置資訊之結構的指標。 當這個方法傳回時,結構會描述工具列控件的反白顯示色彩和陰影色彩。

傳回值

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

備註

這個方法會傳送 TB_GETCOLORSCHEME 訊息,如 Windows SDK 中所述。

CToolBarCtrl::GetDisabledImageList

擷取工具列控件用來顯示已停用按鈕的影像清單。

CImageList* GetDisabledImageList() const;

傳回值

物件的指標 CImageList ,如果沒有設定停用的影像清單, NULL 則為 。

備註

此成員函式會實作 Win32 訊息 TB_GETDISABLEDIMAGELIST 的行為,如 Windows SDK 中所述。 的 GetDisabledImageList MFC 實作會使用 CImageList 物件,其中包含工具列控件的按鈕影像,而不是影像清單的句柄。

CToolBarCtrl::GetDropTarget

IDropTarget擷取工具列控件的介面。

HRESULT GetDropTarget(IDropTarget** ppDropTarget) const;

參數

ppDropTarget
介面指標的 IDropTarget 指標。 如果發生錯誤, NULL 指標會放在這個位址中。

傳回值

HRESULT傳回值,指出作業的成功或失敗。

備註

此成員函式會實作 Win32 訊息 TB_GETOBJECT 的行為,如 Windows SDK 中所述。

CToolBarCtrl::GetExtendedStyle

擷取工具列控件的延伸樣式。

DWORD GetExtendedStyle() const;

傳回值

DWORD,表示目前用於工具列控件的擴充樣式。 如需樣式清單,請參閱 Windows SDK 中的工具列擴充樣式

備註

此成員函式會實作 Win32 訊息 TB_GETEXTENDEDSTYLE 的行為,如 Windows SDK 中所述。

CToolBarCtrl::GetHotImageList

擷取工具列控件用來顯示「作用中」按鈕的影像清單。 當滑鼠指標位於其上方時,會出現醒目提示的快捷按鈕。

CImageList* GetHotImageList() const;

傳回值

物件的指標 CImageList ,如果沒有設定停用的影像清單, NULL 則為 。

備註

此成員函式會實作 Win32 訊息 TB_GETHOTIMAGELIST 的行為,如 Windows SDK 中所述。 當滑鼠指標位於其上方時,會出現醒目提示的快捷按鈕。

CToolBarCtrl::GetHotItem

擷取工具列中作用中專案的索引。

int GetHotItem() const;

傳回值

工具列中作用中專案之以零起始的索引。

備註

此成員函式會實作 Win32 訊息 TB_GETHOTITEM 的行為,如 Windows SDK 中所述。

CToolBarCtrl::GetImageList

擷取工具列控件用來顯示其默認狀態按鈕的影像清單。

CImageList* GetImageList() const;

傳回值

物件的指標 CImageList ,如果沒有設定任何影像清單, NULL 則為 。

備註

此成員函式會實作 Win32 訊息 TB_GETIMAGELIST 的行為,如 Windows SDK 中所述。

CToolBarCtrl::GetInsertMark

擷取工具列目前的插入標記。

void GetInsertMark(TBINSERTMARK* ptbim) const;

參數

ptbim
接收插入標記之結構的指標 TBINSERTMARK

備註

此成員函式會實作 Win32 訊息 TB_GETINSERTMARK 的行為,如 Windows SDK 中所述。

CToolBarCtrl::GetInsertMarkColor

擷取用來繪製工具列插入標記的色彩。

COLORREF GetInsertMarkColor() const;

傳回值

COLORREF值,包含目前的插入標記色彩。

備註

此成員函式會實作 Win32 訊息 TB_GETINSERTMARKCOLOR 的行為,如 Windows SDK 中所述。

CToolBarCtrl::GetItemRect

擷取工具列控件中按鈕的周框。

BOOL GetItemRect(
    int nIndex,
    LPRECT lpRect) const;

參數

nIndex
要擷取資訊的按鈕以零起始的索引。

lpRect
RECT結構或CRect接收周框座標的物件位址。

傳回值

如果成功則不為零,否則為 0。

備註

此函式不會針對狀態設定為 TBSTATE_HIDDEN的按鈕擷取周框。

CToolBarCtrl::GetMaxSize

擷取工具列中所有可見按鈕和分隔符的總大小。

BOOL GetMaxSize(LPSIZE pSize) const;

參數

pSize
接收專案大小的 結構的指標 SIZE

傳回值

如果成功則為非零;否則為 0。

備註

此成員函式會實作 Win32 訊息 TB_GETMAXSIZE 的行為,如 Windows SDK 中所述。

CToolBarCtrl::GetMaxTextRows

擷取工具列按鈕上顯示的最大文字列數。

int GetMaxTextRows() const;

傳回值

工具列按鈕上顯示的文字列數目上限。

CToolBarCtrl::GetMetrics

擷取 物件的計量 CToolBarCtrl

void GetMetrics(LPTBMETRICS ptbm) const;

參數

ptbm
對象的結構的CToolBarCtrl指標TBMETRICS

備註

此成員函式會模擬訊息的功能 TB_GETMETRICS ,如 Windows SDK 中所述。

CToolBarCtrl::GetPadding

擷取目前工具列控件的水準和垂直邊框間距。

BOOL GetPadding(
    int* pnHorzPadding,
    int* pnVertPadding) const;

參數

pnHorzPadding
[out]整數,接收工具列控件的水準邊框間距,以像素為單位。

pnVertPadding
[out]整數,接收工具列控件的垂直邊框間距,以像素為單位。

傳回值

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

備註

這個方法會傳送 TB_GETPADDING 訊息,如 Windows SDK 中所述。

CToolBarCtrl::GetPressedImageList

擷取目前工具列控件用來表示處於已按下狀態的按鈕的影像清單。

CImageList* GetPressedImageList();

傳回值

CImageList包含目前控制元件影像清單的指標,如果沒有NULL設定這類影像清單,則為 。

備註

這個方法會傳送 TB_GETPRESSEDIMAGELIST 訊息,如 Windows SDK 中所述。

CToolBarCtrl::GetRect

擷取指定工具列按鈕的周框。

BOOL GetRect(
    int nID,
    LPRECT lpRect) const;

參數

nID
按鈕標識碼。

lpRect
要接收周框信息的 結構的指標 RECT

傳回值

如果成功,則為 TRUE,否則為 FALSE

備註

此成員函式會實作 Win32 訊息 TB_GETRECT 的行為,如 Windows SDK 中所述。

CToolBarCtrl::GetRows

擷取工具列控件目前顯示之按鈕的數據列數目。

int GetRows() const;

傳回值

目前顯示在工具列上的按鈕列數。

備註

請注意,除非使用樣式建立 TBSTYLE_WRAPABLE 工具列,否則數據列數目一律為一個。

CToolBarCtrl::GetState

擷取工具列控件中指定按鈕狀態的相關信息,例如是否啟用、按下或核取。

int GetState(int nID) const;

參數

nID
要擷取資訊的按鈕命令標識碼。

傳回值

如果成功,則為按鈕狀態信息,否則為 -1。 按鈕狀態資訊可以是 中 CToolBarCtrl::AddButtons所列值的組合。

備註

如果您想要擷取多個按鈕狀態,此函式特別方便。 若要只擷取一個狀態,請使用下列其中一個成員函式: IsButtonEnabledIsButtonCheckedIsButtonPressedIsButtonHiddenIsButtonIndeterminate。 不過, GetState 成員函式是偵測 TBSTATE_WRAP 按鈕狀態的唯一方法。

CToolBarCtrl::GetString

擷取工具列字串。

int GetString(
    int nString,
    LPTSTR lpstrString,
    int cchMaxLen) const;

int GetString(
    int nString,
    CString& str) const;

參數

nString
字串的索引。

lpstrString
用來傳回字串之緩衝區的指標。

cchMaxLen
以位元組為單位的緩衝區長度。

str
字串。

傳回值

如果成功,則為 -1,如果不是,則為字串的長度。

備註

此成員函式會實作 Win32 訊息 TB_GETSTRING 的行為,如 Windows SDK 中所述。

CToolBarCtrl::GetStyle

取得目前套用至工具列控件的樣式。

DWORD GetStyle() const;

傳回值

DWORD,包含工具列控件樣式的組合,如 Windows SDK 中所述。

CToolBarCtrl::GetToolTips

擷取工具提示控件的句柄,如果有的話,與工具欄控件相關聯。

CToolTipCtrl* GetToolTips() const;

傳回值

與這個工具列相關聯的物件指標 CToolTipCtrl ,如果 NULL 工具列沒有相關聯的工具提示控件,則為 。

備註

由於工具列控件通常會建立及維護自己的工具提示控件,因此大部分的程式都不需要呼叫此函式。

CToolBarCtrl::HitTest

判斷某個點位於工具列控件的位置。

int HitTest(LPPOINT ppt) const;

參數

ppt
結構的指標 POINT ,其中包含成員中 x 點擊測試的 X 座標,以及成員中 y 點擊測試的 Y 座標。 座標相對於工具列的工作區。

傳回值

整數值,表示工具列上點的位置。 如果值為零或正值,則這個傳回值是點所在之非分隔器專案的以零起始的索引。

如果傳回值為負數,則點不會位於按鈕內。 傳回值的絕對值是分隔符專案的索引或最接近的非分隔器專案。

備註

此成員函式會實作 Win32 訊息 TB_HITTEST 的行為,如 Windows SDK 中所述。

CToolBarCtrl::HideButton

隱藏或顯示工具列控制件中的指定按鈕。

BOOL HideButton(
    int nID,
    BOOL bHide = TRUE);

參數

nID
要隱藏或顯示之按鈕的命令標識碼。

bHide
TRUE 表示隱藏按鈕, FALSE 以顯示它。

傳回值

如果成功則不為零,否則為 0。

備註

如果您要變更多個按鈕狀態,請考慮改為呼叫 SetState

CToolBarCtrl::Indeterminate

設定或清除工具列控制件中指定按鈕的不確定狀態。

BOOL Indeterminate(
    int nID,
    BOOL bIndeterminate = TRUE);

參數

nID
要設定或清除其不確定狀態的按鈕命令標識碼。

bIndeterminate
TRUE 表示設定指定按鈕的不確定狀態, FALSE 以清除它。

傳回值

如果成功則不為零,否則為 0。

備註

不確定的按鈕會顯示為灰色,例如當選取的文字同時包含粗體和一般字元時,字處理器工具列上的粗體按鈕看起來的方式。 如果您要變更多個按鈕狀態,請考慮改為呼叫 SetState

CToolBarCtrl::InsertButton

在工具列控制件中插入按鈕。

BOOL InsertButton(
    int nIndex,
    LPTBBUTTON lpButton);

參數

nIndex
按鈕以零起始的索引。 此函式會將新按鈕插入此按鈕的左邊。

lpButton
TBBUTTON結構位址,其中包含要插入之按鈕的相關信息。 如需結構的描述,TBBUTTON請參閱 CToolBarCtrl::AddButtons

傳回值

如果成功則不為零,否則為 0。

備註

您提供的影像和/或字串,其索引之前必須使用 、 AddString和/或 AddStrings新增至工具列控件的清單AddBitmap

CToolBarCtrl::InsertMarkHitTest

擷取工具列中某個點的插入標記資訊。

BOOL InsertMarkHitTest(
    LPPOINT ppt,
    LPTBINSERTMARK ptbim) const;

參數

ppt
結構指標 POINT ,包含點擊測試座標,相對於工具列的工作區。

ptbim
結構的指標 TBINSERTMARK ,可接收插入標記資訊。

傳回值

如果成功則不為零,否則為 0。

備註

此成員函式會實作 Win32 訊息 TB_INSERTMARKHITTEST 的行為,如 Windows SDK 中所述。

CToolBarCtrl::IsButtonChecked

判斷是否檢查工具列控制件中的指定按鈕。

BOOL IsButtonChecked(int nID) const;

參數

nID
工具列中按鈕的命令標識碼。

傳回值

如果核取按鈕,則為非零;否則為零。

備註

如果您要擷取多個按鈕狀態,請考慮呼叫 GetState

CToolBarCtrl::IsButtonEnabled

判斷工具列控制件中的指定按鈕是否已啟用。

BOOL IsButtonEnabled(int nID) const;

參數

nID
工具列中按鈕的命令標識碼。

傳回值

如果已啟用按鈕,則為非零;否則為零。

備註

如果您要擷取多個按鈕狀態,請考慮呼叫 GetState

CToolBarCtrl::IsButtonHidden

判斷工具列控制件中的指定按鈕是否隱藏。

BOOL IsButtonHidden(int nID) const;

參數

nID
工具列中按鈕的命令標識碼。

傳回值

如果隱藏按鈕,則為非零;否則為零。

備註

如果您要擷取多個按鈕狀態,請考慮呼叫 GetState

CToolBarCtrl::IsButtonHighlighted

檢查工具列按鈕的醒目提示狀態。

BOOL IsButtonHighlighted(int nID) const;

參數

nID
[in]工具列按鈕的命令標識碼。

傳回值

如果按鈕反白顯示,則為正整數,如果按鈕未反白顯示,則為0;如果發生錯誤則為 -1。

CToolBarCtrl::IsButtonIndeterminate

判斷工具列控制件中的指定按鈕是否不確定。

BOOL IsButtonIndeterminate(int nID) const;

參數

nID
[in]工具列中按鈕的命令標識碼。

傳回值

如果按鈕不確定,則為正整數,如果按鈕未確定則為零,如果發生錯誤則為 -1。

備註

不確定的按鈕會顯示為暗灰色,例如當選取的文字包含粗體和一般字元時,字處理器工具列上的粗體按鈕看起來的方式。 如果您要擷取多個按鈕狀態,請考慮呼叫 GetState

CToolBarCtrl::IsButtonPressed

判斷是否按下工具列控件中的指定按鈕。

BOOL IsButtonPressed(int nID) const;

參數

nID
工具列中按鈕的命令標識碼。

傳回值

如果按下按鈕,則為非零,否則為零。

備註

如果您要擷取多個按鈕狀態,請考慮呼叫 GetState

CToolBarCtrl::LoadImages

將點陣圖載入工具列控件的影像清單。

void LoadImages(
    int iBitmapID,
    HINSTANCE hinst);

參數

iBitmapID
包含要載入之影像的點陣圖標識碼。 若要指定您自己的點陣圖資源,請將此參數設定為點陣圖資源的識別元,並將設定 hInstNULL。 您的點陣圖資源將會新增至影像清單做為單一影像。 您可以藉由將 設定 為 ,並將此參數設定 hinstHINST_COMMCTRL 下列其中一個識別元,以新增標準、系統定義的點陣圖:

點陣圖標識碼 描述
IDB_HIST_LARGE_COLOR 大小較大的總管位圖
IDB_HIST_SMALL_COLOR 小型總管位圖
IDB_STD_LARGE_COLOR 大型標準點圖
IDB_STD_SMALL_COLOR 小型標準點圖
IDB_VIEW_LARGE_COLOR 檢視大小較大的點陣圖
IDB_VIEW_SMALL_COLOR 以小型大小檢視位圖

hinst
呼叫應用程式的程序實例句柄。 此參數可以 HINST_COMMCTRL 載入標準映像清單。

備註

此成員函式會實作 Win32 訊息 TB_LOADIMAGES 的行為,如 Windows SDK 中所述。

CToolBarCtrl::MapAccelerator

將快捷鍵字元對應至工具列按鈕。

BOOL MapAccelerator(
    TCHAR chAccel,
    UINT* pIDBtn);

參數

chAccel
要對應的快捷鍵字元。 此字元與按鈕文字中加上底線的字元相同。

pIDBtn
的指標 UINT ,接收對應至 中所 chAccel指定快捷鍵之按鈕的命令標識符。

傳回值

如果成功則不為零,否則為 0。

備註

此成員函式會實作 Win32 訊息 TB_MAPACCELERATOR 的行為,如 Windows SDK 中所述。

CToolBarCtrl::MarkButton

設定工具列控制件中指定按鈕的醒目提示狀態。

BOOL MarkButton(
    int nID,
    BOOL fHighlight = TRUE);

參數

nID
按鈕標識碼。

fHighlight
指定要設定的醒目提示狀態。 根據預設, TRUE為 。 如果設定為 FALSE,按鈕會設定為其默認狀態。

傳回值

如果成功則為非零;否則為 0。

備註

此成員函式會實作 Win32 訊息 TB_MARKBUTTON 的行為,如 Windows SDK 中所述。

CToolBarCtrl::MoveButton

將按鈕從一個索引移到另一個索引。

BOOL MoveButton(
    UINT nOldPos,
    UINT nNewPos);

參數

nOldPos
要移動之按鈕之以零起始的索引。

nNewPos
按鈕目的地之以零起始的索引。

傳回值

如果成功則為非零;否則為 0。

備註

此成員函式會實作 Win32 訊息 TB_MOVEBUTTON 的行為,如 Windows SDK 中所述。

CToolBarCtrl::PressButton

在工具列控件中按下或放開指定的按鈕。

BOOL PressButton(int nID, BOOL bPress = TRUE);

參數

nID
[in]要按下或放開之按鈕的命令標識碼。

bPress
[in] TRUE 表示按下指定的按鈕; FALSE 以釋放指定的按鈕。 預設值是 TRUE

傳回值

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

備註

如果您要變更多個按鈕狀態,請考慮改為呼叫 SetState

這個方法會傳送 TB_PRESSBUTTON 訊息,如 Windows SDK 中所述。

CToolBarCtrl::ReplaceBitmap

以新的點陣圖取代目前工具列控件中的現有點陣圖。

BOOL ReplaceBitmap(LPTBREPLACEBITMAP pReplaceBitmap);

參數

pReplaceBitmap
[in] TBREPLACEBITMAP 結構的指標,描述要取代的點陣圖和新點陣圖。

傳回值

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

備註

這個方法會傳送 TB_REPLACEBITMAP 訊息,如 Windows SDK 中所述。

範例

下列程式代碼範例會將標準工具列的點陣圖取代為不同的點陣圖。

{
   // Replace one toolbar bitmap with another.
   TBREPLACEBITMAP tbrb;
   tbrb.hInstOld = ::AfxGetInstanceHandle();
   tbrb.nIDOld = IDR_MAINFRAME;
   tbrb.hInstNew = ::AfxGetInstanceHandle();
   tbrb.nIDNew = IDR_MAINFRAME1;
   tbrb.nButtons = 8;
   CToolBarCtrl &m_toolBarCtrl = m_wndToolBar.GetToolBarCtrl();
   BOOL bRet = m_toolBarCtrl.ReplaceBitmap(&tbrb);
}

CToolBarCtrl::RestoreState

從參數所指定登錄中的位置還原工具列控件的狀態。

void RestoreState(
    HKEY hKeyRoot,
    LPCTSTR lpszSubKey,
    LPCTSTR lpszValueName);

參數

hKeyRoot
識別登錄中目前開啟的機碼,或下列任何預先定義的保留句柄值:

  • HKEY_CLASSES_ROOT

  • HKEY_CURRENT_USER

  • HKEY_LOCAL_MACHINE

  • HKEY_USERS

lpszSubKey
指向 NULL包含與值相關聯之子機碼名稱的終止字串。 此參數可以是 NULL 或空字串的指標。 如果參數為 NULL,則值將會新增至 參數所識別的 hKeyRoot 索引鍵。

lpszValueName
指向包含要擷取之值名稱的字串。 如果索引鍵中還沒有具有這個名稱的值,函式會將它新增至索引鍵。

CToolBarCtrl::SaveState

將工具列控制件的狀態儲存在參數所指定登錄的位置。

void SaveState(
    HKEY hKeyRoot,
    LPCTSTR lpszSubKey,
    LPCTSTR lpszValueName);

參數

hKeyRoot
識別登錄中目前開啟的機碼,或下列任何預先定義的保留句柄值:

  • HKEY_CLASSES_ROOT

  • HKEY_CURRENT_USER

  • HKEY_LOCAL_MACHINE

  • HKEY_USERS

lpszSubKey
指向 NULL包含與值相關聯之子機碼名稱的終止字串。 此參數可以是 NULL 或空字串的指標。 如果參數為 NULL,則值將會新增至 參數所識別的 hKeyRoot 索引鍵。

lpszValueName
指向包含要設定之值名稱的字串。 如果索引鍵中還沒有具有這個名稱的值,函式會將它新增至索引鍵。

CToolBarCtrl::SetAnchorHighlight

設定工具列的錨點醒目提示設定。

BOOL SetAnchorHighlight(BOOL fAnchor = TRUE);

參數

fAnchor
[in]指定是否啟用或停用錨點醒目提示。 如果此值為非零值,則會啟用錨點醒目提示。 如果此值為零,則會停用錨點醒目提示

傳回值

上一個錨點設定。 如果已啟用醒目提示,此值為非零值。 如果未啟用反白顯示,則此值為零。

備註

此方法會實作 Win32 訊息 TB_SETANCHORHIGHLIGHT的行為,如 Windows SDK 中所述。

CToolBarCtrl::SetBitmapSize

設定要新增至工具列控件的實際點圖影像大小。

BOOL SetBitmapSize(CSize size);

參數

size
位圖影像的寬度和高度,以像素為單位。

傳回值

如果成功則不為零,否則為 0。

備註

只有在將任何位圖新增至工具列之前,才呼叫此函式。 如果應用程式未明確設定位圖大小,則預設為16 x 15像素。

CToolBarCtrl::SetButtonInfo

設定工具列中現有按鈕的資訊。

BOOL SetButtonInfo(
    int nID,
    TBBUTTONINFO* ptbbi);

參數

nID
按鈕標識碼。

ptbbi
接收按鈕資訊之 結構的指標 TBBUTTONINFO

傳回值

如果成功則為非零;否則為 0。

備註

成員函式會實作 Win32 訊息 TB_SETBUTTONINFO的行為,如 Windows SDK 中所述。

CToolBarCtrl::SetButtonSize

設定工具列控件中按鈕的大小。

BOOL SetButtonSize(CSize size);

參數

size
按鈕的寬度和高度,以像素為單位。

傳回值

如果成功則不為零,否則為 0。

備註

按鈕大小必須至少和它所括住的點陣圖大小一樣大。 只有在將任何位圖新增至工具列之前,才呼叫此函式。 如果應用程式未明確設定按鈕大小,則預設為24 x 22圖元。

範例

請參閱 CToolBar::GetToolBarCtrl 的範例。

CToolBarCtrl::SetButtonStructSize

指定結構的大小 TBBUTTON

void SetButtonStructSize(int nSize);

參數

nSize
結構的大小,以位元組 TBBUTTON 為單位。

備註

如果您想要將額外的數據儲存在 結構中 TBBUTTON ,您可以從 衍生新的結構 TBBUTTON、加入所需的成員,或建立包含結構作為其第一個成員的新結構 TBBUTTON 。 接著,您會呼叫此函式,告訴工具列控制新結構的大小。

如需 結構的詳細資訊,TBBUTTON請參閱 CToolBarCtrl::AddButtons

CToolBarCtrl::SetButtonWidth

設定工具列控制件中的最小和最大按鈕寬度。

BOOL SetButtonWidth(
    int cxMin,
    int cxMax);

參數

cxMin
最小按鈕寬度,以像素為單位。 工具列按鈕永遠不會比此值窄。

cxMax
按鈕寬度上限,以像素為單位。 如果按鈕文字太寬,控件會以省略號點顯示它。

傳回值

如果成功則為非零;否則為 0。

備註

此成員函式會實作 Win32 訊息 TB_SETBUTTONWIDTH 的行為,如 Windows SDK 中所述。

CToolBarCtrl::SetCmdID

設定命令標識碼,這個標識碼會在按下指定的按鈕時傳送至擁有者視窗。

BOOL SetCmdID(
    int nIndex,
    UINT nID);

參數

nIndex
要設定其命令標識碼之按鈕之以零起始的索引。

nID
要設定所選取按鈕的命令標識碼。

傳回值

如果成功,則傳回非零;否則為零。

CToolBarCtrl::SetColorScheme

設定目前工具列控制件的色彩配置。

void SetColorScheme(const COLORSCHEME* lpColorScheme);

參數

lpColorScheme
[in] COLORSCHEME 描述工具列控件之反白顯示色彩和陰影色彩的結構指標。

備註

如果設定 Windows Vista 視覺主題,這個方法就沒有作用。

這個方法會傳送 TB_SETCOLORSCHEME 訊息,如 Windows SDK 中所述。

範例

下列程式代碼範例會設定目前工具列控件的色彩配置。 程式代碼範例會讓每個工具按鈕的左邊緣和上邊緣變成紅色,右邊緣和下邊緣為藍色。 當使用者按下按鈕時,按鈕的紅色邊緣會變成藍色,而其藍色邊緣會變成紅色。

//Set color scheme for the current toolbar control.
//Make the left and top edges of the tool button red,
//and the right and bottom edges blue. The colors
//reverse when a button is pressed.
//This method has no effect if the Vista visual theme
//is set.
{
   COLORSCHEME cs;
   cs.dwSize = sizeof(COLORSCHEME);
   cs.clrBtnHighlight = RGB(255, 0, 0);
   cs.clrBtnShadow = RGB(0, 0, 255);
   CToolBarCtrl &m_toolBarCtrl = m_wndToolBar.GetToolBarCtrl();
   m_toolBarCtrl.SetColorScheme(&cs);
}

CToolBarCtrl::SetDisabledImageList

設定工具列控制件將用來顯示已停用按鈕的影像清單。

CImageList* SetDisabledImageList(CImageList* pImageList);

參數

pImageList
物件的指標 CImageList ,其中包含工具列控件用來顯示已停用按鈕影像的影像。

傳回值

工具列控件先前用來顯示已停用按鈕影像之物件的指標 CImageList

備註

此成員函式會實作 Win32 訊息 TB_SETDISABLEDIMAGELIST 的行為,如 Windows SDK 中所述。 的 SetDisabledImageList MFC 實作會使用 CImageList 物件,其中包含工具列控件的已停用按鈕影像,而不是影像清單的句柄。

CToolBarCtrl::SetDrawTextFlags

設定 Win32 函 DrawText式中的旗標,此函式用來繪製指定矩形中的文字,格式會根據旗標的設定方式進行格式化。

DWORD SetDrawTextFlags(
    DWORD dwMask,
    DWORD dwDTFlags);

參數

dwMask
Win32 函DrawText式中指定的一或多個DT_旗標組合,表示在繪製文字時會使用哪一個位dwDTFlags

dwDTFlags
Win32 函DrawText式中指定的一或多個DT_旗標組合,表示按鈕文字的繪製方式。 這個值會在繪製按鈕文字時傳遞至 DrawText

傳回值

DWORD,包含先前的文字繪圖旗標。

備註

此成員函式會實作 Win32 訊息 TB_SETDRAWTEXTFLAGS 的行為,如 Windows SDK 中所述。 此成員函式會設定 Win32 DrawText函式中的旗標,它會根據旗標的設定方式,在指定的矩形中繪製文字。

CToolBarCtrl::SetExtendedStyle

設定工具列控制件的延伸樣式。

DWORD SetExtendedStyle(DWORD dwExStyle);

參數

dwExStyle
值,指定新的擴充樣式。 此參數可以是工具列擴充樣式的組合。

傳回值

DWORD,表示先前的擴充樣式。 如需樣式清單,請參閱 Windows SDK 中的工具列擴充樣式

備註

此成員函式會實作 Win32 訊息 TB_SETEXTENDEDSTYLE 的行為,如 Windows SDK 中所述。

CToolBarCtrl::SetHotImageList

設定工具列控制件將用來顯示「作用中」按鈕的影像清單。

CImageList* SetHotImageList(CImageList* pImageList);

參數

pImageList
物件的指標 CImageList ,其中包含工具列控件用來顯示作用中按鈕影像的影像。

傳回值

工具列控件先前用來顯示作用中按鈕影像之物件的指標 CImageList

備註

此成員函式會實作 Win32 訊息 TB_SETHOTIMAGELIST 的行為,如 Windows SDK 中所述。

SetHotImageList MFC 實作會使用 CImageList 物件,其中包含工具列控件的快捷按鈕影像,而不是影像清單的句柄。 當指標位於上方時,會出現醒目提示的快捷按鈕。

CToolBarCtrl::SetHotItem

設定工具列中的作用中專案。

int SetHotItem(int nHot);

參數

nHot
要成為經常性存取之專案的以零起始的索引編號。 如果此值為 -1,則不會有任何項目處於作用中狀態。

傳回值

上一個作用中專案的索引,如果沒有作用中的專案,則為 -1。

備註

此成員函式會實作 Win32 訊息 TB_SETHOTITEM 的行為,如 Windows SDK 中所述。

CToolBarCtrl::SetImageList

設定工具列將用來顯示處於預設狀態的按鈕的影像清單。

CImageList* SetImageList(CImageList* pImageList);

參數

pImageList
物件的指標 CImageList ,其中包含工具列控件用來顯示按鈕影像的默認狀態影像。

傳回值

工具列控制項先前用來以預設狀態顯示按鈕影像的物件指標 CImageList

備註

此成員函式會實作 Win32 訊息 TB_SETIMAGELIST 的行為,如 Windows SDK 中所述。

SetImageList MFC 實作會使用 CImageList 物件,其中包含工具列控件的按鈕影像,而不是影像清單的句柄。

CToolBarCtrl::SetIndent

設定工具列控制件中第一個按鈕的縮排。

BOOL SetIndent(int iIndent);

參數

iIndent
指定縮排的值,以像素為單位。

傳回值

如果成功則不為零,否則為 0。

CToolBarCtrl::SetInsertMark

設定工具列目前的插入標記。

void SetInsertMark(TBINSERTMARK* ptbim);

參數

ptbim
包含插入標記之結構的指標 TBINSERTMARK

備註

此成員函式會實作 Win32 訊息 TB_SETINSERTMARK 的行為,如 Windows SDK 中所述。

CToolBarCtrl::SetInsertMarkColor

設定用來繪製工具列插入標記的色彩。

COLORREF SetInsertMarkColor(COLORREF clrNew);

參數

clrNew
COLORREF值,包含新的插入標記色彩。

傳回值

COLORREF值,包含先前的插入標記色彩。

備註

此成員函式會實作 Win32 訊息 TB_SETINSERTMARKCOLOR 的行為,如 Windows SDK 中所述。

CToolBarCtrl::SetMaxTextRows

設定工具列按鈕上顯示的文字列數目上限。

BOOL SetMaxTextRows(int iMaxRows);

參數

iMaxRows
要設定的數據列數目上限。

傳回值

如果成功則不為零,否則為 0。

CToolBarCtrl::SetMetrics

設定物件的計量 CToolBarCtrl

void SetMetrics(LPTBMETRICS ptbm);

參數

ptbm
對象的結構的CToolBarCtrl指標TBMETRICS

備註

此成員函式會模擬訊息的功能 TB_SETMETRICS ,如 Windows SDK 中所述。

CToolBarCtrl::SetOwner

設定工具列控制件的擁有者視窗。

void SetOwner(CWnd* pWnd);

參數

pWnd
CWndCWnd衍生物件的指標,該物件將是工具列控件的新擁有者視窗。

備註

擁有者視窗是接收工具列通知的視窗。

CToolBarCtrl::SetPadding

設定目前工具列控件的水平和垂直邊框間距。

DWORD SetPadding(
    int nHorzPadding,
    int nVertPadding);

參數

nHorzPadding
[in]指定工具列控件的水平邊框間距,以像素為單位。

nVertPadding
[in]指定工具列控件的垂直邊框間距,以像素為單位。

傳回值

DWORD,其低字包含先前的水準填補值,而其高字包含先前的垂直填補值。 填補值會以像素為單位來測量。

備註

這個方法會傳送 TB_SETPADDING 訊息,如 Windows SDK 中所述。

範例

下列程式代碼範例會將目前工具列控件的水準和垂直邊框間距設定為 20 像素。

{
   // Set the horizontal and vertical padding of the current
   // toolbar control.
   CToolBarCtrl &m_toolBarCtrl = m_wndToolBar.GetToolBarCtrl();
   m_toolBarCtrl.SetPadding(50, 50);
}

CToolBarCtrl::SetPressedImageList

設定目前工具列控件用來表示處於已按下狀態的按鈕的影像清單。

CImagelist* SetPressedImageList(
    int iImageID,
    CImageList* pImageList);

參數

iImageID
[in]影像清單以零起始的索引。 如果您只使用一個影像清單,請將此參數設定為零。

pImageList
[in] CImageList 包含新影像清單的指標。

傳回值

CImageList包含目前控制件上一個影像清單的指標,如果沒有NULL設定這類影像清單,則為 。

備註

這個方法會傳送 TB_SETPRESSEDIMAGELIST 訊息,如 Windows SDK 中所述。

範例

下列程式代碼範例會將按下的影像清單設定為與預設影像清單相同。

{
   // SetPressedImageList
   // Set the pressed image list to be the same as the
   // normal image list.
   CToolBarCtrl &m_toolBarCtrl = m_wndToolBar.GetToolBarCtrl();
   CImageList *pNormalCil = m_toolBarCtrl.GetImageList();
   CImageList *pPressedCil = m_toolBarCtrl.GetPressedImageList();
   m_toolBarCtrl.SetPressedImageList(0, pNormalCil);
}

CToolBarCtrl::SetRows

要求工具列控制件將本身大小調整為所要求的數據列數目。

void SetRows(
    int nRows,
    BOOL bLarger,
    LPRECT lpRect);

參數

nRows
要求的數據列數目。

bLarger
指出如果工具列無法調整為要求的數據列數目,是否要使用更多數據列或較少的數據列。

lpRect
指向 CRect 將接收工具列之新周框的對象或 RECT 結構。

備註

如果工具列無法將本身大小調整為所要求的數位或數據列,則會根據的值 bLarger,將本身調整為下一個較大或下一個較小的有效大小。 如果 bLargerTRUE,則新的數據列數目將會大於所要求的數目。 如果 bLargerFALSE,則新的數據列數目將會小於所要求的數目。

如果可以排列按鈕,讓所有數據列的按鈕數目都相同,則工具列的指定數據列數目有效(但最後一個數據列除外)。 例如,包含四個按鈕的工具列無法調整為三個數據列,因為最後兩個數據列必須較短。 如果您嘗試將它的大小調整為三個數據列,如果 是 TRUE ,則會收到四個數據列,如果 bLarger bLargerFALSE,則會收到兩個數據列。

如果工具列中有分隔符,當指定數目的數據列有效時的規則會比較複雜。 配置會計算,如此一來,除非群組無法容納一個數據列,否則不會在數個數據列上分割按鈕群組(在第一個按鈕和群組的最後一個按鈕之前具有分隔符的按鈕)。

如果群組不適合一個數據列,則即使下一個群組符合大型群組結束的數據列,下一個群組也會在下一個數據列上啟動。 此規則的目的是讓大型群組之間的分隔更為明顯。 產生的垂直分隔符會計算為數據列。

另請注意, SetRows 成員函式一律會選擇產生最小工具列大小的版面配置。 使用 TBSTYLE_WRAPABLE 樣式建立工具列,然後調整控件的大小,只會套用上述方法,指定控件的寬度。

此函式只能針對使用 樣式建立的 TBSTYLE_WRAPABLE 工具列呼叫。

CToolBarCtrl::SetState

設定工具列控制件中指定按鈕的狀態。

BOOL SetState(
    int nID,
    UINT nState);

參數

nID
按鈕的命令標識碼。

nState
狀態旗標。 它可以是 中針對按鈕狀態 CToolBarCtrl::AddButtons列出的值組合。

傳回值

如果成功則不為零,否則為 0。

備註

如果您想要設定多個按鈕狀態,此函式特別方便。 若要只設定一個狀態,請使用下列其中一個成員函式: EnableButtonCheckButtonHideButtonIndeterminatePressButton

CToolBarCtrl::SetStyle

設定工具列控件的樣式。

void SetStyle(DWORD dwStyle);

參數

dwStyle
DWORD,包含工具列控件樣式的組合,如 Windows SDK 中所述。

CToolBarCtrl::SetToolTips

將工具提示控制項與工具列控件產生關聯。

void SetToolTips(CToolTipCtrl* pTip);

參數

pTip
物件的 CToolTipCtrl 指標。

CToolBarCtrl::SetWindowTheme

設定物件的視覺化樣式 CToolBarCtrl

HRESULT SetWindowTheme(LPCWSTR pszSubAppName);

參數

pszSubAppName
Unicode 字串的指標,其中包含要設定的工具列可視化樣式。

傳回值

不會使用傳回值。

備註

此成員函式會模擬訊息的功能 TB_SETWINDOWTHEME ,如 Windows SDK 中所述。

另請參閱

MFC 範例 CMNCTRL1
MFC 範例 MFCIE
CWnd
階層架構圖表
CToolBar