共用方式為


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

繼承階層架構

CObject

CCmdTarget

CWnd

CComboBox

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 物件:

  1. 呼叫 CComboBoxEx 以建構 CComboBoxEx 物件。

  2. 呼叫這個成員函式,這個函式會建立擴充的 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 中所述。

另請參閱

MFC 範例 MFCIE
CComboBox 類別
階層架構圖表
CComboBox 類別