CComboBoxEx 類別
藉由提供影像清單的支援,擴充下拉式方塊控制項。
語法
class CComboBoxEx : public CComboBox
成員
公用建構函式
名稱 | 描述 |
---|---|
CComboBoxEx::CComboBoxEx | 建構 CComboBoxEx 物件。 |
公用方法
名稱 | 描述 |
---|---|
CComboBoxEx::Create | 建立下拉式方塊,並將它附加至 CComboBoxEx 物件。 |
CComboBoxEx::CreateEx | 使用指定的 Windows 擴充樣式建立下拉式方塊,並將它附加至 ComboBoxEx 物件。 |
CComboBoxEx::D eleteItem | 從 ComboBoxEx 控制項移除專案。 |
CComboBoxEx::GetComboBoxCtrl | 擷取子下拉式方塊控制項的指標。 |
CComboBoxEx::GetEditCtrl | 擷取控制項之編輯控制項部分的 ComboBoxEx 控制碼。 |
CComboBoxEx::GetExtendedStyle | 擷取用於 ComboBoxEx 控制項的擴充樣式。 |
CComboBoxEx::GetImageList | 擷取指派給 ComboBoxEx 控制項之影像清單的指標。 |
CComboBoxEx::GetItem | 擷取指定 ComboBoxEx 專案的專案資訊。 |
CComboBoxEx::HasEditChanged | 判斷使用者是否已輸入來變更編輯控制項的內容 ComboBoxEx 。 |
CComboBoxEx::InsertItem | 在 控制項中 ComboBoxEx 插入新專案。 |
CComboBoxEx::SetExtendedStyle | 設定 控制項內的 ComboBoxEx 延伸樣式。 |
CComboBoxEx::SetImageList | 設定控制項的 ComboBoxEx 影像清單。 |
CComboBoxEx::SetItem | 設定 控制項中 ComboBoxEx 專案的屬性。 |
CComboBoxEx::SetWindowTheme | 設定延伸下拉式方塊控制項的視覺化樣式。 |
備註
藉由使用 CComboBoxEx
來建立下拉式方塊控制項,您不再需要實作自己的影像繪圖程式碼。 請改用 CComboBoxEx
來存取影像清單中的影像。
影像清單支援
在標準下拉式方塊中,下拉式方塊的擁有者負責建立下拉式方塊做為擁有者繪製控制項來繪製影像。 當您使用 CComboBoxEx
時,不需要設定繪圖樣式CBS_OWNERDRAWFIXED和CBS_HASSTRINGS,因為它們是隱含的。 否則,您必須撰寫程式碼來執行繪圖作業。 CComboBoxEx
控制項支援每個專案最多三個影像:一個用於選取狀態、一個用於未選取狀態,另一個用於重迭影像。
樣式
CComboBoxEx
支援樣式CBS_SIMPLE、CBS_DROPDOWN、CBS_DROPDOWNLIST和WS_CHILD。 當您建立視窗時傳遞的所有其他樣式都會由 控制項忽略。 建立視窗之後,您可以呼叫 CComboBoxEx
Member 函 式 SetExtendedStyle 來提供其他下拉式方塊樣式。 使用這些樣式,您可以:
將清單中的字串搜尋設定為區分大小寫。
建立下拉式方塊控制項,使用斜線 ('/')、反斜線 ('\') 和句號 ('.') 字元做為文字分隔符號。 這可讓使用者使用鍵盤快速鍵 CTRL+ 箭頭,從單字跳到單字。
將下拉式方塊控制項設定為顯示或未顯示影像。 如果未顯示任何影像,下拉式方塊可以移除容納影像的文字縮排。
建立狹窄的下拉式方塊控制項,包括調整大小,使其裁剪它所包含的較寬下拉式方塊。
這些樣式旗標會在使用 CComboBoxEx 中 進一步說明。
專案保留和回呼專案屬性
專案資訊,例如專案和影像的索引、縮排值和文字字串,會儲存在 Win32 結構 COMBOBOXEXITEM 中,如 Windows SDK 中所述。 結構也包含對應至回呼旗標的成員。
如需詳細的概念討論,請參閱 使用 CComboBoxEx 。
繼承階層架構
CComboBoxEx
需求
標頭: afxcmn.h
CComboBoxEx::CComboBoxEx
呼叫這個成員函式以建立 CComboBoxEx
物件。
CComboBoxEx();
CComboBoxEx::Create
建立下拉式方塊,並將它附加至 CComboBoxEx
物件。
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
參數
dwStyle
指定套用至下拉式方塊的下拉式方塊樣式組合。 如需樣式的詳細資訊,請參閱 下面的< 備註>。
矩形
CRect 物件或 RECT 結構的參考 ,這是下拉式方塊的位置和大小。
pParentWnd
CWnd 物件的指標 ,該物件是下拉式方塊的父視窗(通常是 )。 CDialog
它不得為 Null。
nID
指定下拉式方塊的控制識別碼。
傳回值
如果成功建立物件,則為非零;否則為 0。
備註
在兩個步驟中建立 CComboBoxEx
物件:
呼叫 CComboBoxEx 以建構
CComboBoxEx
物件。呼叫這個成員函式,這個函式會建立擴充的 Windows 下拉式方塊,並將它附加至
CComboBoxEx
物件。
當您呼叫 Create
時,MFC 會初始化通用控制項。
當您建立下拉式方塊時,可以指定下列任何或所有下拉式方塊樣式:
CBS_SIMPLE
CBS_DROPDOWN
CBS_DROPDOWNLIST
CBS_AUTOHSCROLL
WS_CHILD
建立視窗時傳遞的所有其他樣式都會被忽略。 控制項 ComboBoxEx
也支援提供其他功能的擴充樣式。 這些樣式會在 Windows SDK 的 ComboBoxEx 控制項擴充樣式 中 描述。 呼叫 SetExtendedStyle 來設定這些樣式。
如果您想要搭配控制項使用延伸視窗樣式,請呼叫 CreateEx 而非 Create
。
CComboBoxEx::CreateEx
呼叫此函式以建立擴充下拉式方塊控制項(子視窗),並將它與 CComboBoxEx
物件產生關聯。
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
參數
dwExStyle
指定要建立之控制項的擴充樣式。 如需擴充 Windows 樣式的清單,請參閱 Windows SDK 中 CreateWindowEx 的 dwExStyle 參數 。
dwStyle
下拉式方塊控制項的樣式。 如需樣式清單,請參閱 建立 。
矩形
RECT 結構的參考 ,描述要建立之視窗的大小和位置,在 pParentWnd 的用戶端座標中 。
pParentWnd
控制項父系之視窗的指標。
nID
控制項的子視窗識別碼。
傳回值
如果成功則為非零;否則為 0。
備註
使用 CreateEx
而不是 Create
套用擴充的 Windows 樣式,由 Windows 擴充樣式前文 WS_EX_指定。
CreateEx
使用 dwExStyle 所 指定的擴充 Windows 樣式來建立 控制項。 您必須使用 SetExtendedStyle 來設定擴充下拉式方塊控制項特有的擴充樣式。 例如,使用 CreateEx
來設定這類樣式,例如WS_EX_CONTEXTHELP,但使用 SetExtendedStyle
來設定這類樣式,例如CBES_EX_CASESENSITIVE。 如需詳細資訊,請參閱 Windows SDK 中 ComboBoxEx Control 擴充樣式主題 中所述的樣式 。
CComboBoxEx::D eleteItem
從 ComboBoxEx
控制項移除專案。
int DeleteItem(int iIndex);
參數
iIndex
要移除之專案之以零起始的索引。
傳回值
控制項中剩餘的專案數。 如果 iIndex 無效,函式會傳回CB_ERR。
備註
此成員函式會實作訊息 CBEM_DELETEITEM 的功能,如 Windows SDK 中所述。 當您呼叫 DeleteItem 時, CBEN_DELETEITEM通知的WM_NOTIFY 訊息將會傳送至父視窗。
CComboBoxEx::GetComboBoxCtrl
呼叫這個成員函式,以取得 物件內下拉式方塊控制項的 CComboBoxEx
指標。
CComboBox* GetComboBoxCtrl();
傳回值
CComboBox
物件的指標。
備註
控制項 CComboBoxEx
是由父視窗所組成,其會 CComboBox
封裝 。
傳 CComboBox
回值所指向的物件是暫存物件,並在下一個閒置處理時間期間終結。
CComboBoxEx::GetEditCtrl
呼叫這個成員函式,以取得下拉式方塊編輯控制項的指標。
CEdit* GetEditCtrl();
傳回值
CEdit 物件的指標 。
備註
當 CComboBoxEx
控制項以CBS_DROPDOWN樣式建立時,會使用編輯方塊。
傳 CEdit
回值所指向的物件是暫存物件,並在下一個閒置處理時間期間終結。
CComboBoxEx::GetExtendedStyle
呼叫這個成員函式以取得控制項 CComboBoxEx
所使用的擴充樣式。
DWORD GetExtendedStyle() const;
傳回值
包含用於下拉式方塊控制項之擴充樣式的 DWORD 值。
備註
如需這些樣式的詳細資訊,請參閱 Windows SDK 中的 ComboBoxEx 控制項擴充樣式 。
CComboBoxEx::GetImageList
呼叫這個成員函式,以取得控制項所使用之影像清單的 CComboBoxEx
指標。
CImageList* GetImageList() const;
傳回值
CImageList 物件的指標 。 如果失敗,此成員函式會傳回 Null。
備註
傳 CImageList
回值所指向的物件是暫存物件,並在下一個閒置處理時間期間終結。
CComboBoxEx::GetItem
擷取指定 ComboBoxEx
專案的專案資訊。
BOOL GetItem(COMBOBOXEXITEM* pCBItem);
參數
pCBItem
將接收專案資訊的 COMBOBOXEXITEM 結構的指標 。
傳回值
如果作業成功,則為非零;否則為 0。
備註
此成員函式會實作訊息 CBEM_GETITEM 的功能,如 Windows SDK 中所述。
CComboBoxEx::HasEditChanged
判斷使用者是否已輸入來變更編輯控制項的內容 ComboBoxEx
。
BOOL HasEditChanged();
傳回值
如果使用者已在控制項的編輯方塊中輸入,則為非零;否則為 0。
備註
此成員函式會實作訊息 CBEM_HASEDITCHANGED 的功能,如 Windows SDK 中所述。
CComboBoxEx::InsertItem
在 控制項中 ComboBoxEx
插入新專案。
int InsertItem(const COMBOBOXEXITEM* pCBItem);
參數
pCBItem
將接收專案資訊的 COMBOBOXEXITEM 結構的指標 。 此結構包含專案的回呼旗標值。
傳回值
成功時插入新專案的索引;否則為 -1。
備註
當您呼叫 InsertItem
時, 會傳送具有 CBEN_INSERTITEM通知的WM_NOTIFY 訊息至父視窗。
CComboBoxEx::SetExtendedStyle
呼叫這個成員函式,以設定用於下拉式方塊擴充控制項的擴充樣式。
DWORD SetExtendedStyle(
DWORD dwExMask,
DWORD dwExStyles);
參數
dwExMask
DWORD 值,指出要影響 dwExStyles 中的 樣式。 只會變更 dwExMask 中的 擴充樣式。 所有其他樣式都會維持不變。 如果此參數為零,dwExStyles 中的所有 樣式都會受到影響。
dwExStyles
包含要為控制項設定的下拉式方塊控制項延伸樣式的 DWORD 值。
傳回值
DWORD 值,其中包含先前用於控制項的擴充樣式。
備註
如需這些樣式的詳細資訊,請參閱 Windows SDK 中的 ComboBoxEx 控制項擴充樣式 。
若要使用延伸視窗樣式建立下拉式方塊擴充控制項,請使用 CreateEx 。
CComboBoxEx::SetImageList
設定控制項的 ComboBoxEx
影像清單。
CImageList* SetImageList(CImageList* pImageList);
參數
pImageList
物件的指標 CImageList
,其中包含要與 控制項搭配 CComboBoxEx
使用的影像。
傳回值
CImageList 物件的指標 ,其中包含控制項先前使用的 CComboBoxEx
影像。 如果先前未設定任何映射清單,則為 Null。
備註
此成員函式會實作訊息 CBEM_SETIMAGELIST 的功能,如 Windows SDK 中所述。 如果您變更預設編輯控制項的高度,請在呼叫 SetImageList
之後呼叫 Win32 函式 SetWindowPos 來調整控制項的大小,否則它將不會正確顯示。
傳 CImageList
回值所指向的物件是暫存物件,並在下一個閒置處理時間期間終結。
CComboBoxEx::SetItem
設定 控制項中 ComboBoxEx
專案的屬性。
BOOL SetItem(const COMBOBOXEXITEM* pCBItem);
參數
pCBItem
將接收專案資訊的 COMBOBOXEXITEM 結構的指標 。
傳回值
如果作業成功,則為非零;否則為 0。
備註
此成員函式會實作訊息 CBEM_SETITEM 的功能,如 Windows SDK 中所述。
CComboBoxEx::SetWindowTheme
設定延伸下拉式方塊控制項的視覺化樣式。
HRESULT SetWindowTheme(LPCWSTR pszSubAppName);
參數
pszSubAppName
Unicode 字串的指標,其中包含要設定的擴充下拉式方塊視覺化樣式。
傳回值
不會使用傳回值。
備註
此成員函式會模擬CBEM_SETWINDOWTHEME 訊息的功能 ,如 Windows SDK 中所述。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應