Udostępnij za pośrednictwem


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 CComboBoxExnie 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

Obiekt CObject

CCmdTarget

CWnd

CComboBox

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:

  1. Wywołaj obiekt CComboBoxEx , aby utworzyć CComboBoxEx obiekt.

  2. 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 CreateMFC 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 CComboBoxelement .

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 InsertItemmetody 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 SetImageListmetody 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