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
指定套用至下拉式方塊的下拉式方塊樣式組合。 如需樣式的詳細資訊,請參閱下面的<
rect
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
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 中所述。