Klasa CComboBoxEx
Rozszerza kontrolkę pola kombi, zapewniając obsługę list obrazów.
Składnia
class CComboBoxEx : public CComboBox
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CComboBoxEx::CComboBoxEx | CComboBoxEx Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CComboBoxEx::Create | Tworzy pole kombi i dołącza je do CComboBoxEx obiektu. |
CComboBoxEx::CreateEx | Tworzy pole kombi z określonymi stylami rozszerzonymi systemu Windows i dołącza je do ComboBoxEx obiektu. |
CComboBoxEx::D eleteItem | Usuwa element z kontrolki ComboBoxEx . |
CComboBoxEx::GetComboBoxCtrl | Pobiera wskaźnik do kontrolki podrzędnego pola kombi. |
CComboBoxEx::GetEditCtrl | Pobiera uchwyt do części kontrolki edycji kontrolki ComboBoxEx . |
CComboBoxEx::GetExtendedStyle | Pobiera style rozszerzone, które są używane dla kontrolki ComboBoxEx . |
CComboBoxEx::GetImageList | Pobiera wskaźnik do listy obrazów przypisanej do kontrolki ComboBoxEx . |
CComboBoxEx::GetItem | Pobiera informacje o elemencie dla danego ComboBoxEx elementu. |
CComboBoxEx::HasEditChanged | Określa, czy użytkownik zmienił zawartość kontrolki ComboBoxEx edycji, wpisując . |
CComboBoxEx::InsertItem | Wstawia nowy element w kontrolce ComboBoxEx . |
CComboBoxEx::SetExtendedStyle | Ustawia style rozszerzone w kontrolce ComboBoxEx . |
CComboBoxEx::SetImageList | Ustawia listę obrazów dla kontrolki ComboBoxEx . |
CComboBoxEx::SetItem | Ustawia atrybuty elementu w kontrolce ComboBoxEx . |
CComboBoxEx::SetWindowTheme | Ustawia styl wizualny kontrolki rozszerzonego pola kombi. |
Uwagi
Aby CComboBoxEx
utworzyć kontrolki pola kombi, nie trzeba już implementować własnego kodu rysunku obrazu. Zamiast tego użyj polecenia CComboBoxEx
, aby uzyskać dostęp do obrazów z listy obrazów.
Obsługa listy obrazów
W standardowym polu kombi właściciel pola kombi jest odpowiedzialny za rysowanie obrazu przez utworzenie pola kombi jako kontrolki rysowania właściciela. W przypadku używania metody CComboBoxEx
nie trzeba ustawiać stylów rysunku CBS_OWNERDRAWFIXED i CBS_HASSTRINGS, ponieważ są one implikowane. W przeciwnym razie musisz napisać kod, aby wykonywać operacje rysowania. Kontrolka CComboBoxEx
obsługuje maksymalnie trzy obrazy na element: jeden dla wybranego stanu, jeden dla stanu niezaznaczonego i jeden dla obrazu nakładki.
Style
CComboBoxEx
obsługuje style CBS_SIMPLE, CBS_DROPDOWN, CBS_DROPDOWNLIST i WS_CHILD. Wszystkie inne style przekazywane podczas tworzenia okna są ignorowane przez kontrolkę. Po utworzeniu okna można podać inne style pola kombi, wywołując CComboBoxEx
funkcję składową SetExtendedStyle. Za pomocą tych stylów można wykonywać następujące czynności:
Ustaw wyszukiwania ciągów na liście tak, aby uwzględniały wielkość liter.
Utwórz kontrolkę pola kombi, która używa ukośnika ('/'), ukośnika odwrotnego ('\') i znaków kropki ('.') jako ograniczników wyrazów. Dzięki temu użytkownicy mogą przechodzić ze słowa do wyrazu przy użyciu skrótu klawiaturowego CTRL+ STRZAŁKA.
Ustaw kontrolkę pola kombi tak, aby wyświetlała lub nie wyświetlała obrazu. Jeśli obraz nie zostanie wyświetlony, pole kombi może usunąć wcięcie tekstowe, które będzie pasować do obrazu.
Utwórz kontrolkę wąskiego pola kombi, w tym jej rozmiar, aby przycinać szersze pole kombi, które zawiera.
Te flagi stylu zostały szczegółowo opisane w temacie Using CComboBoxEx (Korzystanie z CComboBoxEx).
Atrybuty elementu przechowywania i wywołania zwrotnego elementów
Informacje o elementach, takie jak indeksy elementów i obrazów, wartości wcięcia i ciągi tekstowe, są przechowywane w strukturze Win32 COMBOBOXEXITEM, zgodnie z opisem w zestawie Windows SDK. Struktura zawiera również elementy członkowskie, które odpowiadają flagom wywołania zwrotnego.
Aby uzyskać szczegółowe omówienie koncepcyjne, zobacz Using CComboBoxEx (Korzystanie z CComboBoxEx).
Hierarchia dziedziczenia
CComboBoxEx
Wymagania
Nagłówek: afxcmn.h
CComboBoxEx::CComboBoxEx
Wywołaj tę funkcję składową CComboBoxEx
, aby utworzyć obiekt.
CComboBoxEx();
CComboBoxEx::Create
Tworzy pole kombi i dołącza je do CComboBoxEx
obiektu.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametry
dwStyle
Określa kombinację stylów pól kombi zastosowanych do pola kombi. Zobacz uwagi poniżej, aby uzyskać więcej informacji na temat stylów.
Rect
Odwołanie do obiektu CRect lub struktury RECT , która jest pozycją i rozmiarem pola kombi.
pParentWnd
Wskaźnik do obiektu CWnd , który jest oknem nadrzędnym pola kombi (zazwyczaj CDialog
). Nie może mieć wartości NULL.
Nid
Określa identyfikator kontrolki pola kombi.
Wartość zwracana
Niezero, jeśli obiekt został utworzony pomyślnie; w przeciwnym razie 0.
Uwagi
CComboBoxEx
Utwórz obiekt w dwóch krokach:
Wywołaj obiekt CComboBoxEx , aby utworzyć
CComboBoxEx
obiekt.Wywołaj tę funkcję składową, która tworzy rozszerzone pole kombi systemu Windows i dołącza je do
CComboBoxEx
obiektu.
Podczas wywoływania interfejsu Create
MFC inicjuje typowe kontrolki.
Podczas tworzenia pola kombi można określić dowolne lub wszystkie następujące style pola kombi:
CBS_SIMPLE
CBS_DROPDOWN
CBS_DROPDOWNLIST
CBS_AUTOHSCROLL
WS_CHILD
Wszystkie inne style przekazywane podczas tworzenia okna są ignorowane. Kontrolka ComboBoxEx
obsługuje również style rozszerzone, które zapewniają dodatkowe funkcje. Te style są opisane w stylu rozszerzonym kontrolki ComboBoxEx w zestawie Windows SDK. Ustaw te style przez wywołanie metody SetExtendedStyle.
Jeśli chcesz użyć rozszerzonych stylów okien z kontrolką, wywołaj metodę CreateEx zamiast Create
.
CComboBoxEx::CreateEx
Wywołaj tę funkcję, aby utworzyć rozszerzoną kontrolkę pola kombi (okno podrzędne) i skojarz ją z obiektem CComboBoxEx
.
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametry
dwExStyle
Określa rozszerzony styl tworzonej kontrolki. Aby uzyskać listę rozszerzonych stylów systemu Windows, zobacz parametr dwExStyle dla polecenia CreateWindowEx w zestawie WINDOWS SDK.
dwStyle
Styl kontrolki pola kombi. Zobacz Tworzenie , aby uzyskać listę stylów.
Rect
Odwołanie do struktury RECT opisującej rozmiar i położenie okna do utworzenia w współrzędnych klienta pParentWnd.
pParentWnd
Wskaźnik do okna, który jest elementem nadrzędnym kontrolki.
Nid
Identyfikator okna podrzędnego kontrolki.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Użyj CreateEx
zamiast Create
stosować rozszerzone style systemu Windows określone przez WS_EX_ stylu rozszerzonego systemu Windows.
CreateEx
tworzy kontrolkę z rozszerzonymi stylami systemu Windows określonymi przez dwExStyle. Należy ustawić style rozszerzone specyficzne dla rozszerzonej kontrolki pola kombi przy użyciu właściwości SetExtendedStyle. Na przykład użyj polecenia CreateEx
, aby ustawić takie style jak WS_EX_CONTEXTHELP, ale służy SetExtendedStyle
do ustawiania takich stylów jak CBES_EX_CASESENSITIVE. Aby uzyskać więcej informacji, zobacz style opisane w temacie ComboBoxEx Control Extended Styles in the Windows SDK (Style rozszerzone kontrolki ComboBoxEx w zestawie WINDOWS SDK).
CComboBoxEx::D eleteItem
Usuwa element z kontrolki ComboBoxEx
.
int DeleteItem(int iIndex);
Parametry
iIndex
Indeks zerowy elementu do usunięcia.
Wartość zwracana
Liczba elementów pozostałych w kontrolce. Jeśli właściwość iIndex jest nieprawidłowa, funkcja zwraca CB_ERR.
Uwagi
Ta funkcja składowa implementuje funkcjonalność komunikatu CBEM_DELETEITEM zgodnie z opisem w zestawie Windows SDK. Po wywołaniu metody DeleteItem do okna nadrzędnego zostanie wysłany komunikat WM_NOTIFY z powiadomieniem CBEN_DELETEITEM.
CComboBoxEx::GetComboBoxCtrl
Wywołaj tę funkcję składową, aby uzyskać wskaźnik do kontrolki pola kombi w CComboBoxEx
obiekcie.
CComboBox* GetComboBoxCtrl();
Wartość zwracana
Wskaźnik do CComboBox
obiektu.
Uwagi
Kontrolka CComboBoxEx
składa się z okna nadrzędnego, które hermetyzuje CComboBox
element .
CComboBox
Obiekt wskazywany przez wartość zwracaną jest obiektem tymczasowym i jest niszczony w następnym czasie przetwarzania bezczynności.
CComboBoxEx::GetEditCtrl
Wywołaj tę funkcję składową, aby uzyskać wskaźnik do kontrolki edycji pola kombi.
CEdit* GetEditCtrl();
Wartość zwracana
Wskaźnik do obiektu CEdit .
Uwagi
Kontrolka CComboBoxEx
używa pola edycji podczas jego tworzenia przy użyciu stylu CBS_DROPDOWN.
CEdit
Obiekt wskazywany przez wartość zwracaną jest obiektem tymczasowym i jest niszczony w następnym czasie przetwarzania bezczynności.
CComboBoxEx::GetExtendedStyle
Wywołaj tę funkcję składową, aby uzyskać rozszerzone style używane dla kontrolki CComboBoxEx
.
DWORD GetExtendedStyle() const;
Wartość zwracana
Wartość DWORD zawierająca style rozszerzone, które są używane dla kontrolki pola kombi.
Uwagi
Aby uzyskać więcej informacji na temat tych stylów, zobacz ComboBoxEx Control Extended Styles in the Windows SDK (Rozszerzone style kontrolki ComboBoxEx w zestawie SDK systemu Windows).
CComboBoxEx::GetImageList
Wywołaj tę funkcję składową, aby uzyskać wskaźnik do listy obrazów używanej przez kontrolkę CComboBoxEx
.
CImageList* GetImageList() const;
Wartość zwracana
Wskaźnik do obiektu CImageList . Jeśli zakończy się to niepowodzeniem, ta funkcja składowa zwróci wartość NULL.
Uwagi
CImageList
Obiekt wskazywany przez wartość zwracaną jest obiektem tymczasowym i jest niszczony w następnym czasie przetwarzania bezczynności.
CComboBoxEx::GetItem
Pobiera informacje o elemencie dla danego ComboBoxEx
elementu.
BOOL GetItem(COMBOBOXEXITEM* pCBItem);
Parametry
pCBItem
Wskaźnik do struktury COMBOBOXEXITEM , która będzie otrzymywać informacje o elemencie.
Wartość zwracana
Nonzero, jeśli operacja zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa implementuje funkcjonalność komunikatu CBEM_GETITEM zgodnie z opisem w zestawie Windows SDK.
CComboBoxEx::HasEditChanged
Określa, czy użytkownik zmienił zawartość kontrolki ComboBoxEx
edycji, wpisując .
BOOL HasEditChanged();
Wartość zwracana
Nonzero, jeśli użytkownik wpisał w polu edycji kontrolki; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa implementuje funkcjonalność CBEM_HASEDITCHANGED komunikatu zgodnie z opisem w zestawie Windows SDK.
CComboBoxEx::InsertItem
Wstawia nowy element w kontrolce ComboBoxEx
.
int InsertItem(const COMBOBOXEXITEM* pCBItem);
Parametry
pCBItem
Wskaźnik do struktury COMBOBOXEXITEM , która będzie otrzymywać informacje o elemencie. Ta struktura zawiera wartości flagi wywołania zwrotnego dla elementu.
Wartość zwracana
Indeks, w którym nowy element został wstawiony, jeśli się powiedzie; w przeciwnym razie -1.
Uwagi
Po wywołaniu InsertItem
metody do okna nadrzędnego zostanie wysłana wiadomość WM_NOTIFY z powiadomieniem CBEN_INSERTITEM.
CComboBoxEx::SetExtendedStyle
Wywołaj tę funkcję składową, aby ustawić style rozszerzone używane dla rozszerzonej kontrolki pola kombi.
DWORD SetExtendedStyle(
DWORD dwExMask,
DWORD dwExStyles);
Parametry
dwExMask
Wartość DWORD wskazująca, które style w dwExStyles mają mieć wpływ. Zostaną zmienione tylko style rozszerzone w pliku dwExMask . Wszystkie inne style będą utrzymywane w następujący sposób. Jeśli ten parametr ma wartość zero, wpłynie to na wszystkie style dwExStyles.
dwExStyles
Wartość DWORD, która zawiera rozszerzone style kontrolki pola kombi, aby ustawić dla kontrolki.
Wartość zwracana
Wartość DWORD zawierająca style rozszerzone używane wcześniej dla kontrolki.
Uwagi
Aby uzyskać więcej informacji na temat tych stylów, zobacz ComboBoxEx Control Extended Styles in the Windows SDK (Rozszerzone style kontrolki ComboBoxEx w zestawie SDK systemu Windows).
Aby utworzyć rozszerzoną kontrolkę pola kombi z rozszerzonymi stylami okien, użyj polecenia CreateEx.
CComboBoxEx::SetImageList
Ustawia listę obrazów dla kontrolki ComboBoxEx
.
CImageList* SetImageList(CImageList* pImageList);
Parametry
pImageList
Wskaźnik do obiektu zawierającego CImageList
obrazy do użycia z kontrolką CComboBoxEx
.
Wartość zwracana
Wskaźnik do obiektu CImageList zawierającego obrazy używane wcześniej przez kontrolkę CComboBoxEx
. Wartość NULL, jeśli wcześniej nie ustawiono żadnej listy obrazów.
Uwagi
Ta funkcja składowa implementuje funkcjonalność CBEM_SETIMAGELIST komunikatu zgodnie z opisem w zestawie WINDOWS SDK. Jeśli zmienisz wysokość domyślnej kontrolki edycji, wywołaj funkcję Win32 SetWindowPos , aby zmienić rozmiar kontrolki po wywołaniu SetImageList
metody lub nie będzie ona wyświetlana poprawnie.
CImageList
Obiekt wskazywany przez wartość zwracaną jest obiektem tymczasowym i jest niszczony w następnym czasie przetwarzania bezczynności.
CComboBoxEx::SetItem
Ustawia atrybuty elementu w kontrolce ComboBoxEx
.
BOOL SetItem(const COMBOBOXEXITEM* pCBItem);
Parametry
pCBItem
Wskaźnik do struktury COMBOBOXEXITEM , która będzie otrzymywać informacje o elemencie.
Wartość zwracana
Nonzero, jeśli operacja zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa implementuje funkcjonalność komunikatu CBEM_SETITEM zgodnie z opisem w zestawie Windows SDK.
CComboBoxEx::SetWindowTheme
Ustawia styl wizualny kontrolki rozszerzonego pola kombi.
HRESULT SetWindowTheme(LPCWSTR pszSubAppName);
Parametry
pszSubAppName
Wskaźnik do ciągu Unicode, który zawiera rozszerzony styl wizualizacji pola kombi do ustawienia.
Wartość zwracana
Wartość zwracana nie jest używana.
Uwagi
Ta funkcja składowa emuluje funkcjonalność komunikatu CBEM_SETWINDOWTHEME zgodnie z opisem w zestawie WINDOWS SDK.
Zobacz też
Przykład MFC — MFCIE
Klasa CComboBox
Wykres hierarchii
Klasa CComboBox