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
Název | Popis |
---|---|
CComboBoxEx::CComboBoxEx | CComboBoxEx Vytvoří objekt. |
Veřejné metody
Název | 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í CComboBoxEx
nemusí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
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.
Návratová hodnota
Nenulové, pokud byl objekt úspěšně vytvořen; jinak 0.
Poznámky
Vytvořte CComboBoxEx
objekt ve dvou krocích:
Volání CComboBoxEx vytvořit
CComboBoxEx
objekt.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í Create
mfc 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.
Návratová 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.
CreateEx
vytvoří 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.
Návratová 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();
Návratová 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();
Návratová 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;
Návratová 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;
Návratová 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.
Návratová 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();
Návratová 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.
Návratová 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.
Návratová 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.
Návratová 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.
Návratová 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.
Návratová 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