CToolBarCtrl
類別
提供 Windows 工具列通用控制項的功能。
語法
class CToolBarCtrl : public CWnd
成員
公用建構函式
名稱 | 描述 |
---|---|
CToolBarCtrl::CToolBarCtrl |
建構 CToolBarCtrl 物件。 |
公用方法
備註
此控件(因此類別 CToolBarCtrl
)僅適用於在 Windows 95/98 和 Windows NT 3.51 版和更新版本下執行的程式。
Windows 工具列通用控制項是包含一或多個按鈕的矩形子視窗。 這些按鈕可以顯示位圖影像、字串或兩者。 當使用者選擇按鈕時,它會將命令訊息傳送至工具列的擁有者視窗。 一般而言,工具列中的按鈕會對應至應用程式功能表中的專案;他們提供更直接的方式讓使用者存取應用程式的命令。
CToolBarCtrl
物件包含數個重要的內部數據結構:按鈕影像位圖或影像清單、按鈕標籤字串清單,以及將影像和/或字串與按鈕的位置、樣式、狀態和命令標識碼建立關聯的結構清單 TBBUTTON
。 這些數據結構的每個元素都會由以零起始的索引來參考。 您必須先設定這些數據結構,才能使用 CToolBarCtrl
物件。 字串清單只能用於按鈕標籤;您無法從工具列擷取字串。
若要使用 CToolBarCtrl
物件,您通常會遵循下列步驟:
建構
CToolBarCtrl
物件。呼叫
Create
以建立 Windows 工具列通用控件,並將它附加至CToolBarCtrl
物件。 使用樣式來指出工具列的樣式,例如TBSTYLE_TRANSPARENT
透明工具列或TBSTYLE_DROPDOWN
支援下拉式樣式按鈕的工具列。識別您希望工具列上的按鈕顯示方式:
若要使用按鈕的點陣圖影像,請呼叫
AddBitmap
,將按鈕點圖新增至工具列。若要使用從影像清單顯示的按鈕影像,請呼叫
SetImageList
、SetHotImageList
或SetDisabledImageList
來指定影像清單。若要使用按鈕的字串標籤,請呼叫
AddString
和/或AddStrings
,將字元串新增至工具列。
藉由呼叫
AddButtons
,將按鈕結構新增至工具列。如果您想要在不是
CFrameWnd
的擁有者視窗中使用工具列按鈕的工具提示,您必須處理工具列擁有者視窗中的訊息,如處理TTN_NEEDTEXT
工具提示通知中所述。 如果工具列的父視窗衍生自CFrameWnd
,則會顯示工具提示,而不需要您任何額外的工作,因為CFrameWnd
提供默認處理程式。如果您想要讓使用者能夠自定義工具列,請在擁有者視窗中處理自定義通知訊息,如處理自定義通知中所述。
您可以使用 SaveState
將工具列控件的目前狀態儲存在登錄中,並根據 RestoreState
先前儲存在登錄中的資訊還原狀態。 除了在應用程式使用之間儲存工具列狀態之外,應用程式通常會在用戶開始自定義工具列之前儲存狀態,以防使用者稍後想要將工具列還原為其原始狀態。
支援 Internet Explorer 4.0 版和更新版本
為了支援 Internet Explorer 4.0 版和更新版本中引進的功能,MFC 提供工具列控件的影像清單支援和透明且一般樣式。
透明工具列可讓工具列底下的用戶端透過 顯示。 若要建立透明工具列,請使用 TBSTYLE_FLAT
和 TBSTYLE_TRANSPARENT
樣式。 透明工具列功能熱追蹤;也就是說,當滑鼠指標移至工具列上的作用中按鈕時,按鈕的外觀就會變更。 只使用樣式建立的 TBSTYLE_FLAT
工具列將包含不透明的按鈕。
影像清單支援可讓控件擁有更大的預設行為、經常性影像和已停用影像的彈性。 使用 GetImageList
、 GetHotImageList
和 GetDisabledImageList
搭配透明工具列,根據影像的狀態操作影像:
如需使用CToolBarCtrl
的詳細資訊,請參閱 控制項和使用 CToolBarCtrl
。
繼承階層架構
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_TOP
和 CCS_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
新增大型點陣圖之前呼叫 SetBitmapSize
和 SetButtonSize
。
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
所列值的組合。
備註
如果您想要擷取多個按鈕狀態,此函式特別方便。 若要只擷取一個狀態,請使用下列其中一個成員函式: IsButtonEnabled
、 IsButtonChecked
、 IsButtonPressed
、 IsButtonHidden
或 IsButtonIndeterminate
。 不過, 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
包含要載入之影像的點陣圖標識碼。 若要指定您自己的點陣圖資源,請將此參數設定為點陣圖資源的識別元,並將設定 hInst
為 NULL
。 您的點陣圖資源將會新增至影像清單做為單一影像。 您可以藉由將 設定 為 ,並將此參數設定 hinst
為 HINST_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
CWnd
或CWnd
衍生物件的指標,該物件將是工具列控件的新擁有者視窗。
備註
擁有者視窗是接收工具列通知的視窗。
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
,將本身調整為下一個較大或下一個較小的有效大小。 如果 bLarger
為 TRUE
,則新的數據列數目將會大於所要求的數目。 如果 bLarger
為 FALSE
,則新的數據列數目將會小於所要求的數目。
如果可以排列按鈕,讓所有數據列的按鈕數目都相同,則工具列的指定數據列數目有效(但最後一個數據列除外)。 例如,包含四個按鈕的工具列無法調整為三個數據列,因為最後兩個數據列必須較短。 如果您嘗試將它的大小調整為三個數據列,如果 是 TRUE
,則會收到四個數據列,如果 bLarger
bLarger
是 FALSE
,則會收到兩個數據列。
如果工具列中有分隔符,當指定數目的數據列有效時的規則會比較複雜。 配置會計算,如此一來,除非群組無法容納一個數據列,否則不會在數個數據列上分割按鈕群組(在第一個按鈕和群組的最後一個按鈕之前具有分隔符的按鈕)。
如果群組不適合一個數據列,則即使下一個群組符合大型群組結束的數據列,下一個群組也會在下一個數據列上啟動。 此規則的目的是讓大型群組之間的分隔更為明顯。 產生的垂直分隔符會計算為數據列。
另請注意, SetRows
成員函式一律會選擇產生最小工具列大小的版面配置。 使用 TBSTYLE_WRAPABLE
樣式建立工具列,然後調整控件的大小,只會套用上述方法,指定控件的寬度。
此函式只能針對使用 樣式建立的 TBSTYLE_WRAPABLE
工具列呼叫。
CToolBarCtrl::SetState
設定工具列控制件中指定按鈕的狀態。
BOOL SetState(
int nID,
UINT nState);
參數
nID
按鈕的命令標識碼。
nState
狀態旗標。 它可以是 中針對按鈕狀態 CToolBarCtrl::AddButtons
列出的值組合。
傳回值
如果成功則不為零,否則為 0。
備註
如果您想要設定多個按鈕狀態,此函式特別方便。 若要只設定一個狀態,請使用下列其中一個成員函式: EnableButton
、 CheckButton
、 HideButton
、 Indeterminate
或 PressButton
。
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 中所述。