Sdílet prostřednictvím


CComboBoxEx – třída

Rozšíří ovládací prvek pole se seznamem tím, že poskytuje podporu pro seznamy obrázků.

Syntaxe

class CComboBoxEx : public CComboBox

Členové

Veřejné konstruktory

Jméno popis
CComboBoxEx::CComboBoxEx CComboBoxEx Vytvoří objekt.

Veřejné metody

Jméno popis
CComboBoxEx::Create Vytvoří pole se seznamem a připojí ho k objektu CComboBoxEx .
CComboBoxEx::CreateEx Vytvoří pole se seznamem se zadanými rozšířenými styly Windows a připojí ho k objektu ComboBoxEx .
CComboBoxEx::D eleteItem Odebere položku z ComboBoxEx ovládacího prvku.
CComboBoxEx::GetComboBoxCtrl Načte ukazatel na podřízený ovládací prvek pole se seznamem.
CComboBoxEx::GetEditCtrl Načte popisovač do části ComboBoxEx ovládacího prvku pro úpravy ovládacího prvku.
CComboBoxEx::GetExtendedStyle Načte rozšířené styly, které se používají pro ComboBoxEx ovládací prvek.
CComboBoxEx::GetImageList Načte ukazatel na seznam obrázků přiřazený ovládacímu ComboBoxEx prvku.
CComboBoxEx::GetItem Načte informace o položce pro danou ComboBoxEx položku.
CComboBoxEx::HasEditChanged Určuje, zda uživatel změnil obsah ComboBoxEx ovládacího prvku pro úpravy zadáním.
CComboBoxEx::InsertItem Vloží novou položku do ComboBoxEx ovládacího prvku.
CComboBoxEx::SetExtendedStyle Nastaví rozšířené styly v ovládacím ComboBoxEx prvku.
CComboBoxEx::SetImageList Nastaví seznam obrázků pro ComboBoxEx ovládací prvek.
CComboBoxEx::SetItem Nastaví atributy položky v ovládacím ComboBoxEx prvku.
CComboBoxEx::SetWindowTheme Nastaví vizuální styl rozšířeného ovládacího prvku pole se seznamem.

Poznámky

CComboBoxEx Pomocí vytváření ovládacích prvků pole se seznamem už nemusíte implementovat vlastní kód výkresu obrázku. Místo toho se používá CComboBoxEx pro přístup k obrázkům ze seznamu obrázků.

Podpora seznamu obrázků

Ve standardním poli se seznamem je vlastník pole se seznamem zodpovědný za vykreslení obrázku vytvořením pole se seznamem jako ovládacího prvku pro kreslení vlastníka. Při použití CComboBoxExnemusíte nastavovat styly výkresu CBS_OWNERDRAWFIXED a CBS_HASSTRINGS, protože jsou implicitní. V opačném případě je nutné napsat kód pro provádění operací kreslení. CComboBoxEx Ovládací prvek podporuje až tři obrázky na položku: jeden pro vybraný stav, jeden pro nevybraný stav a jeden pro překryvný obrázek.

Styly

CComboBoxEx podporuje styly CBS_SIMPLE, CBS_DROPDOWN, CBS_DROPDOWNLIST a WS_CHILD. Ovládací prvek ignoruje všechny ostatní styly předané při vytváření okna. Po vytvoření okna můžete zadat další styly pole se seznamem voláním CComboBoxEx členské funkce SetExtendedStyle. Pomocí těchto stylů můžete:

  • Nastavte hledání řetězců v seznamu tak, aby rozlišovala malá a velká písmena.

  • Vytvořte ovládací prvek pole se seznamem, který jako oddělovače slov používá lomítko (/), zpětné lomítko (\) a tečku (.). Díky tomu můžou uživatelé přejít z slova na slovo pomocí klávesové zkratky CTRL+ŠIPKA.

  • Nastavte ovládací prvek pole se seznamem tak, aby zobrazoval nebo nezobrazil obrázek. Pokud se nezobrazí žádný obrázek, pole se seznamem může odebrat odsazení textu, které odpovídá obrázku.

  • Vytvořte úzký ovládací prvek pole se seznamem, včetně jeho velikosti, aby vystřihl širší pole se seznamem, které obsahuje.

Tyto příznaky stylu jsou popsány dále v použití CComboBoxEx.

Atributy položky uchovávání a zpětného volání

Informace o položkách, jako jsou indexy položek a obrázků, hodnoty odsazení a textové řetězce, jsou uloženy ve struktuře Win32 COMBOBOXEXITEM, jak je popsáno v sadě Windows SDK. Struktura také obsahuje členy, které odpovídají příznakům zpětného volání.

Podrobnou koncepční diskuzi najdete v tématu Použití CComboBoxEx.

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

Cwnd

CComboBox

CComboBoxEx

Požadavky

Hlavička: afxcmn.h

CComboBoxEx::CComboBoxEx

Voláním této členské funkce vytvořte CComboBoxEx objekt.

CComboBoxEx();

CComboBoxEx::Create

Vytvoří pole se seznamem a připojí ho k objektu CComboBoxEx .

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parametry

dwStyle
Určuje kombinaci stylů pole se seznamem použitých u pole se seznamem. Další informace o stylech najdete v poznámkách níže.

Rect
Odkaz na objekt CRect nebo strukturu RECT , což je pozice a velikost pole se seznamem.

pParentWnd
Ukazatel na objekt CWnd , který je nadřazeným oknem pole se seznamem (obvykle a CDialog). Nesmí mít hodnotu NULL.

Nid
Určuje ID ovládacího prvku pole se seznamem.

Vrácená hodnota

Nenulové, pokud byl objekt úspěšně vytvořen; jinak 0.

Poznámky

Vytvořte CComboBoxEx objekt ve dvou krocích:

  1. Volání CComboBoxEx vytvořit CComboBoxEx objekt.

  2. Volání této členské funkce, která vytvoří rozšířené pole se seznamem Windows a připojí ho k objektu CComboBoxEx .

Při volání Createmfc inicializuje běžné ovládací prvky.

Při vytváření pole se seznamem můžete zadat libovolný nebo všechny následující styly polí se seznamem:

  • CBS_SIMPLE

  • CBS_DROPDOWN

  • CBS_DROPDOWNLIST

  • CBS_AUTOHSCROLL

  • WS_CHILD

Všechny ostatní styly předané při vytváření okna se ignorují. Ovládací ComboBoxEx prvek také podporuje rozšířené styly, které poskytují další funkce. Tyto styly jsou popsány v ovládacím prvku ComboBoxEx rozšířené styly v sadě Windows SDK. Nastavte tyto styly voláním SetExtendedStyle.

Chcete-li použít rozšířené styly oken s ovládacím prvek, volání CreateEx místo Create.

CComboBoxEx::CreateEx

Voláním této funkce vytvoříte rozšířený ovládací prvek pole se seznamem (podřízené okno) a přidružíte ho k objektu CComboBoxEx .

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parametry

dwExStyle
Určuje rozšířený styl vytvářeného ovládacího prvku. Seznam rozšířených stylů Windows naleznete v části dwExStyle parametr pro CreateWindowEx v sadě Windows SDK.

dwStyle
Styl ovládacího prvku pole se seznamem. Viz Vytvoření seznamu stylů.

Rect
Odkaz na strukturu RECT popisující velikost a umístění okna, které se má vytvořit, v souřadnicích klienta pParentWnd.

pParentWnd
Ukazatel na okno, které je nadřazeným objektem ovládacího prvku.

Nid
ID podřízeného okna ovládacího prvku.

Vrácená hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Create Místo CreateEx použití rozšířených stylů Windows určených před WS_EX_ rozšířeného stylu Windows.

CreateExvytvoří ovládací prvek s rozšířenými styly Windows určenými dwExStyle. Musíte nastavit rozšířené styly specifické pro rozšířený ovládací prvek pole se seznamem pomocí SetExtendedStyle. Můžete například nastavit CreateEx takové styly jako WS_EX_CONTEXTHELP, ale použít SetExtendedStyle k nastavení takových stylů, jako je CBES_EX_CASESENSITIVE. Další informace najdete v tématu ComboBoxEx Control Extended Styles v sadě Windows SDK.

CComboBoxEx::D eleteItem

Odebere položku z ComboBoxEx ovládacího prvku.

int DeleteItem(int iIndex);

Parametry

iIndex
Index položky, který se má odebrat, založený na nule.

Vrácená hodnota

Počet zbývajících položek v ovládacím prvku Pokud je hodnota iIndex neplatná, vrátí funkce CB_ERR.

Poznámky

Tato členová funkce implementuje funkci zprávy CBEM_DELETEITEM, jak je popsáno v sadě Windows SDK. Při volání DeleteItem se do nadřazeného okna odešle WM_NOTIFY zpráva s oznámením CBEN_DELETEITEM.

CComboBoxEx::GetComboBoxCtrl

Voláním této členské funkce získáte ukazatel na ovládací prvek pole se seznamem v rámci objektu CComboBoxEx .

CComboBox* GetComboBoxCtrl();

Vrácená hodnota

Ukazatel na CComboBox objekt.

Poznámky

Ovládací CComboBoxEx prvek se skládá z nadřazeného okna, které zapouzdřuje CComboBox.

Objekt CComboBox , na který odkazuje návratová hodnota, je dočasným objektem a během další doby zpracování nečinnosti je zničen.

CComboBoxEx::GetEditCtrl

Voláním této členské funkce získáte ukazatel na ovládací prvek pro úpravy pole se seznamem.

CEdit* GetEditCtrl();

Vrácená hodnota

Ukazatel na objekt CEdit .

Poznámky

Ovládací CComboBoxEx prvek používá při vytváření pole pro úpravy s CBS_DROPDOWN stylem.

Objekt CEdit , na který odkazuje návratová hodnota, je dočasným objektem a během další doby zpracování nečinnosti je zničen.

CComboBoxEx::GetExtendedStyle

Voláním této členské funkce získáte rozšířené styly používané pro CComboBoxEx ovládací prvek.

DWORD GetExtendedStyle() const;

Vrácená hodnota

Hodnota DWORD, která obsahuje rozšířené styly používané pro ovládací prvek pole se seznamem.

Poznámky

Další informace o těchto stylech naleznete v tématu ComboBoxEx Control Extended Styles v sadě Windows SDK.

CComboBoxEx::GetImageList

Voláním této členské funkce získáte ukazatel na seznam obrázků, který CComboBoxEx používá ovládací prvek.

CImageList* GetImageList() const;

Vrácená hodnota

Ukazatel na objekt CImageList . Pokud selže, vrátí tato členová funkce hodnotu NULL.

Poznámky

Objekt CImageList , na který odkazuje návratová hodnota, je dočasným objektem a během další doby zpracování nečinnosti je zničen.

CComboBoxEx::GetItem

Načte informace o položce pro danou ComboBoxEx položku.

BOOL GetItem(COMBOBOXEXITEM* pCBItem);

Parametry

pCBItem
Ukazatel na strukturu COMBOBOXEXITEM , která obdrží informace o položce.

Vrácená hodnota

Nenulové, pokud byla operace úspěšná; jinak 0.

Poznámky

Tato členová funkce implementuje funkci zprávy CBEM_GETITEM, jak je popsáno v sadě Windows SDK.

CComboBoxEx::HasEditChanged

Určuje, zda uživatel změnil obsah ComboBoxEx ovládacího prvku pro úpravy zadáním.

BOOL HasEditChanged();

Vrácená hodnota

Nenulové, pokud uživatel zadal do textového pole ovládacího prvku; jinak 0.

Poznámky

Tato členová funkce implementuje funkci zprávy CBEM_HASEDITCHANGED, jak je popsáno v sadě Windows SDK.

CComboBoxEx::InsertItem

Vloží novou položku do ComboBoxEx ovládacího prvku.

int InsertItem(const COMBOBOXEXITEM* pCBItem);

Parametry

pCBItem
Ukazatel na strukturu COMBOBOXEXITEM , která obdrží informace o položce. Tato struktura obsahuje hodnoty příznaku zpětného volání pro položku.

Vrácená hodnota

Index, do kterého byla nová položka vložena, pokud byla úspěšná; jinak -1.

Poznámky

Při volání InsertItem se do nadřazeného okna odešle WM_NOTIFY zpráva s oznámením CBEN_INSERTITEM.

CComboBoxEx::SetExtendedStyle

Voláním této členské funkce nastavíte rozšířené styly použité pro rozšířený ovládací prvek pole se seznamem.

DWORD SetExtendedStyle(
    DWORD dwExMask,
    DWORD dwExStyles);

Parametry

dwExMask
Hodnota DWORD, která označuje, které styly v dwExStyles mají být ovlivněny . Změní se pouze rozšířené styly v dwExMask . Všechny ostatní styly budou zachovány tak, jak jsou. Pokud je tento parametr nula, ovlivní to všechny styly v dwExStyles .

dwExStyles
Hodnota DWORD, která obsahuje ovládací prvek pole se seznamem rozšířené styly pro nastavení ovládacího prvku.

Vrácená hodnota

Hodnota DWORD, která obsahuje rozšířené styly použité pro ovládací prvek.

Poznámky

Další informace o těchto stylech naleznete v tématu ComboBoxEx Control Extended Styles v sadě Windows SDK.

Chcete-li vytvořit rozšířený ovládací prvek pole se seznamem s rozšířenými styly oken, použijte CreateEx.

CComboBoxEx::SetImageList

Nastaví seznam obrázků pro ComboBoxEx ovládací prvek.

CImageList* SetImageList(CImageList* pImageList);

Parametry

pImageList
Ukazatel na CImageList objekt obsahující obrázky, které se mají použít s ovládacím CComboBoxEx prvku.

Vrácená hodnota

Ukazatel na objekt CImageList obsahující obrázky, které dříve používal ovládací CComboBoxEx prvek. Null, pokud nebyl dříve nastaven žádný seznam obrázků.

Poznámky

Tato členová funkce implementuje funkci zprávy CBEM_SETIMAGELIST, jak je popsáno v sadě Windows SDK. Pokud změníte výšku výchozího ovládacího prvku pro úpravy, zavolejte funkci Win32 SetWindowPos a změňte velikost ovládacího prvku po volání SetImageList, nebo se nezobrazí správně.

Objekt CImageList , na který odkazuje návratová hodnota, je dočasným objektem a během další doby zpracování nečinnosti je zničen.

CComboBoxEx::SetItem

Nastaví atributy položky v ovládacím ComboBoxEx prvku.

BOOL SetItem(const COMBOBOXEXITEM* pCBItem);

Parametry

pCBItem
Ukazatel na strukturu COMBOBOXEXITEM , která obdrží informace o položce.

Vrácená hodnota

Nenulové, pokud byla operace úspěšná; jinak 0.

Poznámky

Tato členová funkce implementuje funkci zprávy CBEM_SETITEM, jak je popsáno v sadě Windows SDK.

CComboBoxEx::SetWindowTheme

Nastaví vizuální styl rozšířeného ovládacího prvku pole se seznamem.

HRESULT SetWindowTheme(LPCWSTR pszSubAppName);

Parametry

pszSubAppName
Ukazatel na řetězec Unicode, který obsahuje vizuální styl rozšířeného pole se seznamem, který chcete nastavit.

Vrácená hodnota

Vrácená hodnota se nepoužívá.

Poznámky

Tato členová funkce emuluje funkce CBEM_SETWINDOWTHEME zprávy, jak je popsáno v sadě Windows SDK.

Viz také

MFC – ukázka MFCIE
CComboBox – třída
Graf hierarchie
CComboBox – třída