分享方式:


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

rect
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
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 類別