Udostępnij za pośrednictwem


Klasa CButton

Udostępnia funkcje kontrolek przycisków systemu Windows.

Składnia

class CButton : public CWnd

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CButton::CButton CButton Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
CButton::Create Tworzy kontrolkę przycisku systemu Windows i dołącza ją do CButton obiektu.
CButton::D rawItem Zastąp rysowanie obiektu rysowanego CButton przez właściciela.
CButton::GetBitmap Pobiera uchwyt mapy bitowej ustawionej wcześniej za pomocą polecenia SetBitmap.
CButton::GetButtonStyle Pobiera informacje o stylu kontrolki przycisku.
CButton::GetCheck Pobiera stan sprawdzania kontrolki przycisku.
CButton::GetCursor Pobiera uchwyt obrazu kursora ustawionego wcześniej za pomocą polecenia SetCursor.
CButton::GetIcon Pobiera uchwyt ikony ustawionej wcześniej za pomocą polecenia SetIcon.
CButton::GetIdealSize Pobiera idealny rozmiar kontrolki przycisku.
CButton::GetImageList Pobiera listę obrazów kontrolki przycisku.
CButton::GetNote Pobiera składnik notatek bieżącej kontrolki linku polecenia.
CButton::GetNoteLength Pobiera długość tekstu notatki dla bieżącej kontrolki linku polecenia.
CButton::GetSplitGlyph Pobiera glif skojarzony z bieżącą kontrolką przycisku podziału.
CButton::GetSplitImageList Pobiera listę obrazów dla bieżącej kontrolki przycisku podziału.
CButton::GetSplitInfo Pobiera informacje, które definiują bieżącą kontrolkę przycisku podziału.
CButton::GetSplitSize Pobiera prostokąt ograniczenia składnika listy rozwijanej bieżącego formantu przycisku podziału.
CButton::GetSplitStyle Pobiera style przycisku podziału, które definiują bieżącą kontrolkę przycisku podziału.
CButton::GetState Pobiera stan sprawdzania, wyróżnianie stanu i stan koncentracji uwagi kontrolki przycisku.
CButton::GetTextMargin Pobiera margines tekstu kontrolki przycisku.
CButton::SetBitmap Określa mapę bitową, która ma być wyświetlana na przycisku.
CButton::SetButtonStyle Zmienia styl przycisku.
CButton::SetCheck Ustawia stan sprawdzania kontrolki przycisku.
CButton::SetCursor Określa obraz kursora, który ma być wyświetlany na przycisku.
CButton::SetDropDownState Ustawia stan listy rozwijanej bieżącego formantu przycisku podziału.
CButton::SetIcon Określa ikonę, która ma być wyświetlana na przycisku.
CButton::SetImageList Ustawia listę obrazów kontrolki przycisku.
CButton::SetNote Ustawia notatkę w bieżącej kontrolce linku polecenia.
CButton::SetSplitGlyph Kojarzy określony glif z bieżącą kontrolką przycisku podziału.
CButton::SetSplitImageList Kojarzy listę obrazów z bieżącą kontrolką przycisku podziału.
CButton::SetSplitInfo Określa informacje definiujące bieżącą kontrolkę przycisku podziału.
CButton::SetSplitSize Ustawia prostokąt ograniczenia składnika listy rozwijanej bieżącego formantu przycisku podziału.
CButton::SetSplitStyle Ustawia styl bieżącej kontrolki przycisku podziału.
CButton::SetState Ustawia stan wyróżniania kontrolki przycisku.
CButton::SetTextMargin Ustawia margines tekstu kontrolki przycisku.

Uwagi

Kontrolka przycisku to małe, prostokątne okno podrzędne, które można kliknąć i wyłączyć. Przyciski mogą być używane samodzielnie lub w grupach i mogą być oznaczone lub wyświetlane bez tekstu. Przycisk zwykle zmienia wygląd po kliknięciu go przez użytkownika.

Typowe przyciski to pole wyboru, przycisk radiowy i naciśnięcie przycisku. Obiekt CButton może stać się dowolnym z nich, zgodnie ze stylem przycisku określonym podczas inicjowania przez funkcję Utwórz składową.

Ponadto klasa CBitmapButton pochodząca z CButton klasy obsługuje tworzenie kontrolek przycisków oznaczonych obrazami map bitowych zamiast tekstu. Obiekt CBitmapButton może mieć oddzielne mapy bitowe dla stanów przycisku w górę, w dół, fokusu i wyłączonych.

Możesz utworzyć kontrolkę przycisku na podstawie szablonu okna dialogowego lub bezpośrednio w kodzie. W obu przypadkach najpierw wywołaj konstruktor CButton , aby skonstruować CButton obiekt, a następnie wywołaj Create funkcję składową, aby utworzyć kontrolkę przycisku systemu Windows i dołączyć ją do CButton obiektu.

Konstrukcja może być procesem jednoetapowym w klasie pochodzącej z CButtonklasy . Napisz konstruktor dla klasy pochodnej i wywołaj Create metodę z wewnątrz konstruktora.

Jeśli chcesz obsługiwać komunikaty powiadomień systemu Windows wysyłane przez kontrolkę przycisku do elementu nadrzędnego (zazwyczaj klasa pochodząca z listy CDialog), dodaj funkcję elementu członkowskiego mapy komunikatów i składową programu obsługi komunikatów do klasy nadrzędnej dla każdego komunikatu.

Każdy wpis mapy komunikatów ma następujący formularz:

ON_Notification ( id, memberFxn )

gdzie identyfikator określa identyfikator okna podrzędnego kontrolki wysyłającej powiadomienie i memberFxn jest nazwą nadrzędnej funkcji składowej zapisanej w celu obsługi powiadomienia.

Prototyp funkcji elementu nadrzędnego jest następujący:

afx_msg void memberFxn();

Potencjalne wpisy mapy komunikatów są następujące:

Wpis mapy Wysłane do elementu nadrzędnego, gdy...
ON_BN_CLICKED Użytkownik klika przycisk.
ON_BN_DOUBLECLICKED Użytkownik dwukrotnie klika przycisk.

Jeśli utworzysz CButton obiekt na podstawie zasobu okna dialogowego, CButton obiekt zostanie automatycznie zniszczony, gdy użytkownik zamknie okno dialogowe.

Jeśli utworzysz CButton obiekt w oknie, może być konieczne jego zniszczenie. Jeśli utworzysz CButton obiekt na stercie przy użyciu new funkcji, musisz wywołać delete obiekt, aby go zniszczyć, gdy użytkownik zamknie kontrolkę przycisku systemu Windows. Jeśli utworzysz CButton obiekt na stosie lub zostanie on osadzony w obiekcie okna dialogowego nadrzędnego, zostanie on zniszczony automatycznie.

Hierarchia dziedziczenia

Obiekt CObject

CCmdTarget

CWnd

CButton

Wymagania

Nagłówek: afxwin.h

CButton::CButton

CButton Tworzy obiekt.

CButton();

Przykład

// Declare a button object.
CButton myButton;

CButton::Create

Tworzy kontrolkę przycisku systemu Windows i dołącza ją do CButton obiektu.

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

Parametry

lpszCaption
Określa tekst kontrolki przycisku.

dwStyle
Określa styl kontrolki przycisku. Zastosuj dowolną kombinację stylów przycisków do przycisku.

Rect
Określa rozmiar i położenie kontrolki przycisku. Może to być CRect obiekt lub RECT struktura.

pParentWnd
Określa okno nadrzędne kontrolki przycisku, zwykle CDialog. Nie może mieć wartości NULL.

Nid
Określa identyfikator kontrolki przycisku.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Obiekt jest konstruowany CButton w dwóch krokach. Najpierw wywołaj konstruktor, a następnie wywołaj Createmetodę , która tworzy kontrolkę przycisku systemu Windows i dołącza ją do CButton obiektu.

Jeśli zostanie podany styl WS_VISIBLE, system Windows wysyła kontrolkę przycisku wszystkie komunikaty wymagane do aktywowania i wyświetlania przycisku.

Zastosuj następujące style okna do kontrolki przycisku:

  • zawsze WS_CHILD

  • WS_VISIBLE zwykle

  • WS_DISABLED rzadko

  • kontrolki WS_GROUP do grupy

  • WS_TABSTOP Aby dołączyć przycisk do kolejności tabulacji

Przykład

CButton myButton1, myButton2, myButton3, myButton4;

// Create a push button.
myButton1.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                 CRect(10, 10, 100, 30), pParentWnd, 1);

// Create a radio button.
myButton2.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON,
                 CRect(10, 40, 100, 70), pParentWnd, 2);

// Create an auto 3-state button.
myButton3.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_AUTO3STATE,
                 CRect(10, 70, 100, 100), pParentWnd, 3);

// Create an auto check box.
myButton4.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX,
                 CRect(10, 100, 100, 130), pParentWnd, 4);

CButton::D rawItem

Wywoływana przez platformę, gdy zmieni się wizualny aspekt przycisku rysowanego przez właściciela.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Parametry

lpDrawItem, struktura
Długi wskaźnik do struktury DRAWITEMSTRUCT . Struktura zawiera informacje o elemencie, który ma zostać narysowany, oraz wymagany typ rysunku.

Uwagi

Przycisk narysowany przez właściciela ma zestaw stylów BS_OWNERDRAW. Zastąp tę funkcję składową, aby zaimplementować rysunek dla obiektu rysowanego CButton przez właściciela. Aplikacja powinna przywrócić wszystkie obiekty interfejsu urządzenia graficznego (GDI) wybrane dla kontekstu wyświetlania podanego w lpDrawItemStruct przed zakończeniem funkcji składowej.

Zobacz również wartości stylu BS_ .

Przykład

// NOTE: CMyButton is a class derived from CButton. The CMyButton
// object was created as follows:
//
// CMyButton myButton;
// myButton.Create(_T("My button"),
//      WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
//      CRect(10,10,100,30), pParentWnd, 1);
//

// This example implements the DrawItem method for a CButton-derived
// class that draws the button's text using the color red.
void CMyButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
   UINT uStyle = DFCS_BUTTONPUSH;

   // This code only works with buttons.
   ASSERT(lpDrawItemStruct->CtlType == ODT_BUTTON);

   // If drawing selected, add the pushed style to DrawFrameControl.
   if (lpDrawItemStruct->itemState & ODS_SELECTED)
      uStyle |= DFCS_PUSHED;

   // Draw the button frame.
   ::DrawFrameControl(lpDrawItemStruct->hDC, &lpDrawItemStruct->rcItem,
                      DFC_BUTTON, uStyle);

   // Get the button's text.
   CString strText;
   GetWindowText(strText);

   // Draw the button text using the text color red.
   COLORREF crOldColor = ::SetTextColor(lpDrawItemStruct->hDC, RGB(255, 0, 0));
   ::DrawText(lpDrawItemStruct->hDC, strText, strText.GetLength(),
              &lpDrawItemStruct->rcItem, DT_SINGLELINE | DT_VCENTER | DT_CENTER);
   ::SetTextColor(lpDrawItemStruct->hDC, crOldColor);
}

CButton::GetBitmap

Wywołaj tę funkcję składową, aby uzyskać dojście do mapy bitowej ustawionej wcześniej za pomocą kontrolki SetBitmap, która jest skojarzona z przyciskiem.

HBITMAP GetBitmap() const;

Wartość zwracana

Uchwyt do mapy bitowej. Wartość NULL, jeśli nie określono wcześniej mapy bitowej.

Przykład

CButton myBitmapButton;

// Create a bitmap button.
myBitmapButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_BITMAP,
                      CRect(10, 10, 60, 50), pParentWnd, 1);

// If no bitmap is defined for the button, define the bitmap to the
// system close bitmap.
if (myBitmapButton.GetBitmap() == NULL)
   myBitmapButton.SetBitmap(::LoadBitmap(NULL, MAKEINTRESOURCE(OBM_CLOSE)));

CButton::GetButtonStyle

Pobiera informacje o stylu kontrolki przycisku.

UINT GetButtonStyle() const;

Wartość zwracana

Zwraca style przycisku dla tego CButton obiektu. Ta funkcja zwraca tylko wartości stylu BS_ , a nie żadne z innych stylów okna.

Przykład

CButton myRadioButton;

// Create a radio button.
myRadioButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON,
                     CRect(10, 10, 100, 30), pParentWnd, 1);

// Change the button style to use one of the "auto" styles; for
// push button, change to def push button.
UINT uStyle = myRadioButton.GetButtonStyle();
if (uStyle == BS_PUSHBUTTON)
   uStyle = BS_DEFPUSHBUTTON;
else if (uStyle == BS_RADIOBUTTON)
   uStyle = BS_AUTORADIOBUTTON;
else if (uStyle == BS_CHECKBOX)
   uStyle = BS_AUTOCHECKBOX;
else if (uStyle == BS_3STATE)
   uStyle = BS_AUTO3STATE;

// Change the button style to the one wanted.
myRadioButton.SetButtonStyle(uStyle);

CButton::GetCheck

Pobiera stan sprawdzania przycisku radiowego lub pola wyboru.

int GetCheck() const;

Wartość zwracana

Wartość zwracana z kontrolki przycisku utworzonej za pomocą BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON lub stylu BS_3STATE jest jedną z następujących wartości:

Wartość Znaczenie
BST_UNCHECKED Stan przycisku jest niezaznaczone.
BST_CHECKED Stan przycisku jest zaznaczony.
BST_INDETERMINATE Stan przycisku jest nieokreślony (ma zastosowanie tylko wtedy, gdy przycisk ma styl BS_3STATE lub BS_AUTO3STATE).

Jeśli przycisk ma inny styl, zwracana wartość jest BST_UNCHECKED.

Przykład

CButton myA3Button;

// Create an auto 3-state button.
myA3Button.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_AUTO3STATE,
                  CRect(10, 10, 100, 30), pParentWnd, 1);

// Set the check state to the next state
// (i.e. BST_UNCHECKED changes to BST_CHECKED
// BST_CHECKED changes to BST_INDETERMINATE
// BST_INDETERMINATE changes to BST_UNCHECKED).
myA3Button.SetCheck(((myA3Button.GetCheck() + 1) % 3));

CButton::GetCursor

Wywołaj tę funkcję składową, aby uzyskać uchwyt kursora, który został wcześniej ustawiony za pomocą polecenia SetCursor, który jest skojarzony z przyciskiem.

HCURSOR GetCursor();

Wartość zwracana

Uchwyt do obrazu kursora. Wartość NULL, jeśli nie określono wcześniej kursora.

Przykład

CButton myIconButton;

// Create an icon button.
myIconButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_ICON,
                    CRect(10, 10, 60, 50), pParentWnd, 1);

// If no image is defined for the button, define the image to the
// system arrow and question mark cursor.
if (myIconButton.GetCursor() == NULL)
   myIconButton.SetCursor(::LoadCursor(NULL, IDC_HELP));

CButton::GetIcon

Wywołaj tę funkcję składową, aby uzyskać dojście do ikony, wcześniej ustawionej za pomocą polecenia SetIcon, która jest skojarzona z przyciskiem.

HICON GetIcon() const;

Wartość zwracana

Uchwyt do ikony. Wartość NULL, jeśli nie określono wcześniej żadnej ikony.

Przykład

CButton myIconButton2;

// Create an icon button.
myIconButton2.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_ICON,
                     CRect(10, 10, 60, 50), pParentWnd, 1);

// If no icon is defined for the button, define the icon to the
// system error icon.
if (myIconButton2.GetIcon() == NULL)
   myIconButton2.SetIcon(::LoadIcon(NULL, IDI_ERROR));

CButton::GetIdealSize

Pobiera idealny rozmiar kontrolki przycisku.

BOOL GetIdealSize(SIZE* psize);

Parametry

rozmiar psize
Wskaźnik do bieżącego rozmiaru przycisku.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Ta funkcja składowa emuluje funkcjonalność komunikatu BCM_GETIDEALSIZE zgodnie z opisem w sekcji Przyciski zestawu Windows SDK.

CButton::GetImageList

Wywołaj tę metodę, aby pobrać listę obrazów z kontrolki przycisku.

BOOL GetImageList(PBUTTON_IMAGELIST pbuttonImagelist);

Parametry

pbuttonImagelist
Wskaźnik do listy obrazów CButton obiektu.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Ta funkcja składowa emuluje funkcjonalność komunikatu BCM_GETIMAGELIST zgodnie z opisem w sekcji Przyciski zestawu Windows SDK.

CButton::GetNote

Pobiera tekst notatki skojarzony z bieżącą kontrolką linku polecenia.

CString GetNote() const;

BOOL GetNote(
    LPTSTR lpszNote,
    UINT* cchNote) const;

Parametry

lpszNote
[out] Wskaźnik do buforu, który obiekt wywołujący jest odpowiedzialny za przydzielanie i cofanie przydziału. Jeśli zwracana wartość ma wartość TRUE, bufor zawiera tekst notatki skojarzony z bieżącą kontrolką linku polecenia; w przeciwnym razie bufor jest niezmieniony.

cchNote
[in, out] Wskaźnik do niepodpisanej zmiennej całkowitej. Po wywołaniu tej metody zmienna zawiera rozmiar buforu określonego przez parametr lpszNote . Jeśli ta metoda zwraca wartość TRUE, zmienna zawiera rozmiar notatki skojarzonej z bieżącą kontrolką łącza polecenia. Jeśli zwracana wartość to FALSE, zmienna zawiera rozmiar buforu wymagany do przechowywania notatki.

Wartość zwracana

W pierwszym przeciążeniu obiekt CString zawierający tekst notatki skojarzony z bieżącą kontrolką łącza polecenia.

— lub —

W drugim przeciążeniu wartość TRUE, jeśli ta metoda zakończy się pomyślnie; w przeciwnym razie, FAŁSZ.

Uwagi

Tej metody należy używać tylko z kontrolkami, których styl przycisku jest BS_COMMANDLINK lub BS_DEFCOMMANDLINK.

Ta metoda wysyła komunikat BCM_GETNOTE opisany w zestawie Windows SDK.

CButton::GetNoteLength

Pobiera długość tekstu notatki dla bieżącej kontrolki linku polecenia.

UINT GetNoteLength() const;

Wartość zwracana

Długość tekstu notatki w 16-bitowych znakach Unicode dla bieżącej kontrolki linku polecenia.

Uwagi

Tej metody należy używać tylko z kontrolkami, których styl przycisku jest BS_COMMANDLINK lub BS_DEFCOMMANDLINK.

Ta metoda wysyła komunikat BCM_GETNOTELENGTH opisany w zestawie Windows SDK.

CButton::GetSplitGlyph

Pobiera glif skojarzony z bieżącą kontrolką przycisku podziału.

TCHAR GetSplitGlyph() const;

Wartość zwracana

Znak glif skojarzony z bieżącą kontrolką przycisku podziału.

Uwagi

Glif to fizyczna reprezentacja znaku w określonej czcionki. Na przykład kontrolka przycisku podziału może być ozdobiona symbolem znacznika wyboru Unicode (U+2713).

Tej metody należy używać tylko z kontrolkami, których styl przycisku jest BS_SPLITBUTTON lub BS_DEFSPLITBUTTON.

Ta metoda inicjuje mask element członkowski struktury BUTTON_SPLITINFO z flagą BCSIF_GLYPH , a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO opisanym w zestawie SDK systemu Windows. Gdy funkcja message zwraca, ta metoda pobiera glyph z himlGlyph elementu członkowskiego struktury.

CButton::GetSplitImageList

Pobiera listę obrazów dla bieżącej kontrolki przycisku podziału.

CImageList* GetSplitImageList() const;

Wartość zwracana

Wskaźnik do obiektu CImageList .

Uwagi

Tej metody należy używać tylko z kontrolkami, których styl przycisku jest BS_SPLITBUTTON lub BS_DEFSPLITBUTTON.

Ta metoda inicjuje mask element członkowski struktury BUTTON_SPLITINFO z flagą BCSIF_IMAGE, a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO opisanym w zestawie SDK systemu Windows. Gdy funkcja message zwraca, ta metoda pobiera listę obrazów z himlGlyph elementu członkowskiego struktury.

CButton::GetSplitInfo

Pobiera parametry określające sposób, w jaki system Windows rysuje bieżącą kontrolkę przycisku podziału.

BOOL GetSplitInfo(PBUTTON_SPLITINFO pInfo) const;

Parametry

pInfo
[out] Wskaźnik do struktury BUTTON_SPLITINFO , która odbiera informacje o bieżącym kontrolce przycisku podziału. Obiekt wywołujący jest odpowiedzialny za przydzielanie struktury.

Wartość zwracana

Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.

Uwagi

Tej metody należy używać tylko z kontrolkami, których styl przycisku jest BS_SPLITBUTTON lub BS_DEFSPLITBUTTON.

Ta metoda wysyła komunikat BCM_GETSPLITINFO opisany w zestawie Windows SDK.

CButton::GetSplitSize

Pobiera prostokąt ograniczenia składnika listy rozwijanej bieżącego formantu przycisku podziału.

BOOL GetSplitSize(LPSIZE pSize) const;

Parametry

Rozmiar p
[out] Wskaźnik do struktury SIZE , która otrzymuje opis prostokąta.

Wartość zwracana

Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.

Uwagi

Tej metody należy używać tylko z kontrolkami, których styl przycisku jest BS_SPLITBUTTON lub BS_DEFSPLITBUTTON.

Po rozwinięciu kontrolki przycisku podziału można wyświetlić składnik listy rozwijanej, taki jak kontrolka listy lub kontrolka pagera. Ta metoda pobiera prostokąt ograniczenia zawierający składnik listy rozwijanej.

Ta metoda inicjuje mask element członkowski struktury BUTTON_SPLITINFO z flagą BCSIF_SIZE , a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO opisanym w zestawie SDK systemu Windows. Gdy funkcja message zwraca, ta metoda pobiera prostokąt ograniczenia z size elementu członkowskiego struktury.

CButton::GetSplitStyle

Pobiera style przycisku podziału, które definiują bieżącą kontrolkę przycisku podziału.

UINT GetSplitStyle() const;

Wartość zwracana

Bitowa kombinacja stylów przycisku podziału. Aby uzyskać więcej informacji, zobacz uSplitStyle element członkowski struktury BUTTON_SPLITINFO .

Uwagi

Tej metody należy używać tylko z kontrolkami, których styl przycisku jest BS_SPLITBUTTON lub BS_DEFSPLITBUTTON.

Style przycisku podziału określają wyrównanie, współczynnik proporcji i format graficzny, za pomocą którego system Windows rysuje ikonę przycisku podziału.

Ta metoda inicjuje mask element członkowski struktury BUTTON_SPLITINFO z flagą BCSIF_STYLE, a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO opisanym w zestawie WINDOWS SDK. Po powrocie funkcji komunikatu ta metoda pobiera style przycisku podziału z uSplitStyle elementu członkowskiego struktury.

CButton::GetState

Pobiera stan kontrolki przycisku.

UINT GetState() const;

Wartość zwracana

Pole bitowe zawierające kombinację wartości wskazujących bieżący stan kontrolki przycisku. W poniższej tabeli wymieniono możliwe wartości.

Stan przycisku Wartość Opis
BST_UNCHECKED 0x0000 Stan początkowy.
BST_CHECKED 0x0001 Kontrolka przycisku jest zaznaczona.
BST_INDETERMINATE 0x0002 Stan jest nieokreślony (możliwe tylko wtedy, gdy kontrolka przycisku ma trzy stany).
BST_PUSHED 0x0004 Naciśnięcie kontrolki przycisku.
BST_FOCUS 0x0008 Kontrolka przycisku ma fokus.

Uwagi

Kontrolka przycisku z stylem przycisku BS_3STATE lub BS_AUTO3STATE tworzy pole wyboru, które ma trzeci stan o nazwie nieokreślony stan. Nieokreślony stan wskazuje, że pole wyboru nie jest ani zaznaczone, ani niezaznaczone.

Przykład

CButton myPushButton;

// Create a push button.
myPushButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                    CRect(10, 10, 100, 30), pParentWnd, 1);

// Invert the highlight state of the button.
myPushButton.SetState(!(myPushButton.GetState() & 0x0004));

CButton::GetTextMargin

Wywołaj tę metodę, aby uzyskać margines CButton tekstu obiektu.

BOOL GetTextMargin(RECT* pmargin);

Parametry

pmargin
Wskaźnik do marginesu CButton tekstu obiektu.

Wartość zwracana

Zwraca margines tekstu. Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Ta funkcja składowa emuluje funkcjonalność komunikatu BCM_GETTEXTMARGIN zgodnie z opisem w sekcji Przyciski zestawu Windows SDK.

CButton::SetBitmap

Wywołaj tę funkcję składową, aby skojarzyć nową mapę bitową z przyciskiem .

HBITMAP SetBitmap(HBITMAP hBitmap);

Parametry

hBitmap
Uchwyt mapy bitowej.

Wartość zwracana

Uchwyt mapy bitowej wcześniej skojarzony z przyciskiem .

Uwagi

Mapa bitowa zostanie automatycznie umieszczona na twarzy przycisku, domyślnie wyśrodkowanego. Jeśli mapa bitowa jest za duża dla przycisku, zostanie obcięta po obu stronach. Możesz wybrać inne opcje wyrównania, w tym następujące:

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

W przeciwieństwie do CBitmapButton, który używa czterech map bitowych na przycisk, SetBitmap używa tylko jednej mapy bitowej na przycisk. Po naciśnięciu przycisku mapa bitowa wydaje się przesuwać w dół i w prawo.

Użytkownik jest odpowiedzialny za zwolnienie mapy bitowej po zakończeniu pracy z nią.

Przykład

CButton myBitmapButton;

// Create a bitmap button.
myBitmapButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_BITMAP,
                      CRect(10, 10, 60, 50), pParentWnd, 1);

// If no bitmap is defined for the button, define the bitmap to the
// system close bitmap.
if (myBitmapButton.GetBitmap() == NULL)
   myBitmapButton.SetBitmap(::LoadBitmap(NULL, MAKEINTRESOURCE(OBM_CLOSE)));

CButton::SetButtonStyle

Zmienia styl przycisku.

void SetButtonStyle(
    UINT nStyle,
    BOOL bRedraw = TRUE);

Parametry

nStyle
Określa styl przycisku.

bRedraw
Określa, czy przycisk ma być ponownie rysowane. Wartość niezerowa ponownie rysuje przycisk. Wartość 0 nie rysuje ponownie przycisku. Przycisk jest domyślnie ponownie rysowany.

Uwagi

Użyj funkcji składowej GetButtonStyle , aby pobrać styl przycisku. Krótki wyraz stylu kompletnego przycisku jest stylem specyficznym dla przycisku.

Przykład

CButton myRadioButton;

// Create a radio button.
myRadioButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON,
                     CRect(10, 10, 100, 30), pParentWnd, 1);

// Change the button style to use one of the "auto" styles; for
// push button, change to def push button.
UINT uStyle = myRadioButton.GetButtonStyle();
if (uStyle == BS_PUSHBUTTON)
   uStyle = BS_DEFPUSHBUTTON;
else if (uStyle == BS_RADIOBUTTON)
   uStyle = BS_AUTORADIOBUTTON;
else if (uStyle == BS_CHECKBOX)
   uStyle = BS_AUTOCHECKBOX;
else if (uStyle == BS_3STATE)
   uStyle = BS_AUTO3STATE;

// Change the button style to the one wanted.
myRadioButton.SetButtonStyle(uStyle);

CButton::SetCheck

Ustawia lub resetuje stan sprawdzania przycisku radiowego lub pola wyboru.

void SetCheck(int nCheck);

Parametry

nZnacz
Określa stan sprawdzania. Ten parametr może być jednym z następujących parametrów:

Wartość Znaczenie
BST_UNCHECKED Ustaw stan przycisku na niezaznaczone.
BST_CHECKED Ustaw stan przycisku na zaznaczony.
BST_INDETERMINATE Ustaw stan przycisku na nieokreślony. Tej wartości można użyć tylko wtedy, gdy przycisk ma styl BS_3STATE lub BS_AUTO3STATE.

Uwagi

Ta funkcja składowa nie ma wpływu na naciśnięcie.

Przykład

CButton myA3Button;

// Create an auto 3-state button.
myA3Button.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_AUTO3STATE,
                  CRect(10, 10, 100, 30), pParentWnd, 1);

// Set the check state to the next state
// (i.e. BST_UNCHECKED changes to BST_CHECKED
// BST_CHECKED changes to BST_INDETERMINATE
// BST_INDETERMINATE changes to BST_UNCHECKED).
myA3Button.SetCheck(((myA3Button.GetCheck() + 1) % 3));

CButton::SetCursor

Wywołaj tę funkcję składową, aby skojarzyć nowy kursor z przyciskiem .

HCURSOR SetCursor(HCURSOR hCursor);

Parametry

hCursor
Uchwyt kursora.

Wartość zwracana

Uchwyt kursora wcześniej skojarzony z przyciskiem .

Uwagi

Kursor zostanie automatycznie umieszczony na twarzy przycisku, domyślnie wyśrodkowany. Jeśli kursor jest za duży dla przycisku, zostanie obcięty po obu stronach. Możesz wybrać inne opcje wyrównania, w tym następujące:

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

W przeciwieństwie do CBitmapButton, który używa czterech map bitowych na przycisk, SetCursor używa tylko jednego kursora na przycisk. Po naciśnięciu przycisku kursor zostanie przesunięty w dół i w prawo.

Przykład

CButton myIconButton;

// Create an icon button.
myIconButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_ICON,
                    CRect(10, 10, 60, 50), pParentWnd, 1);

// If no image is defined for the button, define the image to the
// system arrow and question mark cursor.
if (myIconButton.GetCursor() == NULL)
   myIconButton.SetCursor(::LoadCursor(NULL, IDC_HELP));

CButton::SetDropDownState

Ustawia stan listy rozwijanej bieżącego formantu przycisku podziału.

BOOL SetDropDownState(BOOL fDropDown);

Parametry

fDropDown
[in] WARTOŚĆ TRUE, aby ustawić stan BST_DROPDOWNPUSHED; w przeciwnym razie, FAŁSZ.

Wartość zwracana

Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.

Uwagi

Kontrolka przycisku podziału ma styl BS_SPLITBUTTON lub BS_DEFSPLITBUTTON i składa się z przycisku i strzałki listy rozwijanej w prawo. Aby uzyskać więcej informacji, zobacz Style przycisków. Zazwyczaj stan listy rozwijanej jest ustawiany, gdy użytkownik kliknie strzałkę listy rozwijanej. Użyj tej metody, aby programowo ustawić stan listy rozwijanej kontrolki. Strzałka listy rozwijanej jest rysowana w celu wskazania stanu.

Ta metoda wysyła komunikat BCM_SETDROPDOWNSTATE opisany w zestawie Windows SDK.

Przykład

Pierwszy przykład kodu definiuje zmienną , m_splitButtonktóra jest używana do programowego uzyskiwania dostępu do kontrolki przycisku podziału. Ta zmienna jest używana w poniższym przykładzie.

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

Następny przykład kodu ustawia stan kontrolki przycisku podziału, aby wskazać, że strzałka listy rozwijanej jest wypchnięta.

/* Set the state of the split button control to indicate that 
   the drop-down arrow is pushed. The arrow is drawn shaded to 
   indicate the state.
   */
m_splitButton.SetDropDownState(TRUE);

CButton::SetElevationRequired

Ustawia stan bieżącej kontrolki przycisku na elevation required, która jest niezbędna do wyświetlania ikony zabezpieczeń z podwyższonym poziomem uprawnień.

BOOL SetElevationRequired(BOOL fElevationRequired);

Parametry

fElevationRequired
[in] WARTOŚĆ TRUE, aby ustawić elevation required stan; w przeciwnym razie wartość FALSE.

Wartość zwracana

Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.

Uwagi

Jeśli kontrolka linku przycisku lub polecenia wymaga podwyższonego poziomu uprawnień zabezpieczeń do wykonania akcji, ustaw kontrolkę na elevation required stan. Następnie system Windows wyświetla ikonę osłony Kontrola konta użytkownika (UAC) w kontrolce. Aby uzyskać więcej informacji, zobacz Kontrola konta użytkownika.

Ta metoda wysyła komunikat BCM_SETSHIELD opisany w zestawie WINDOWS SDK.

CButton::SetIcon

Wywołaj tę funkcję składową, aby skojarzyć nową ikonę z przyciskiem .

HICON SetIcon(HICON hIcon);

Parametry

hIcon
Uchwyt ikony.

Wartość zwracana

Uchwyt ikony wcześniej skojarzony z przyciskiem .

Uwagi

Ikona zostanie automatycznie umieszczona na twarzy przycisku, domyślnie wyśrodkowana. Jeśli ikona jest za duża dla przycisku, zostanie obcięta po obu stronach. Możesz wybrać inne opcje wyrównania, w tym następujące:

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

W przeciwieństwie do CBitmapButton, który używa czterech map bitowych na przycisk, SetIcon używa tylko jednej ikony na przycisk. Po naciśnięciu przycisku ikona zostanie wyświetlona, aby przesunąć w dół i w prawo.

Przykład

CButton myIconButton2;

// Create an icon button.
myIconButton2.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_ICON,
                     CRect(10, 10, 60, 50), pParentWnd, 1);

// If no icon is defined for the button, define the icon to the
// system error icon.
if (myIconButton2.GetIcon() == NULL)
   myIconButton2.SetIcon(::LoadIcon(NULL, IDI_ERROR));

CButton::SetImageList

Wywołaj tę metodę, aby ustawić listę obrazów CButton obiektu.

BOOL SetImageList(PBUTTON_IMAGELIST pbuttonImagelist);

Parametry

pbuttonImagelist
Wskaźnik do nowej listy obrazów.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Ta funkcja składowa emuluje funkcjonalność komunikatu BCM_SETIMAGELIST zgodnie z opisem w sekcji Przyciski zestawu Windows SDK.

CButton::SetNote

Ustawia tekst notatki dla bieżącej kontrolki linku polecenia.

BOOL SetNote(LPCTSTR lpszNote);

Parametry

lpszNote
[in] Wskaźnik do ciągu Unicode, który jest ustawiony jako tekst notatki dla kontrolki linku polecenia.

Wartość zwracana

Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.

Uwagi

Tej metody należy używać tylko z kontrolkami, których styl przycisku jest BS_COMMANDLINK lub BS_DEFCOMMANDLINK.

Ta metoda wysyła komunikat BCM_SETNOTE opisany w zestawie Windows SDK.

Przykład

Pierwszy przykład kodu definiuje zmienną , m_cmdLinkktóra jest używana do programowego uzyskiwania dostępu do kontrolki linku polecenia. Ta zmienna jest używana w poniższym przykładzie.

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

Następny przykład kodu ustawia tekst notatki dla kontrolki linku polecenia.

// Set the command link text.
m_cmdLink.SetNote(_T("This is the command link note."));

CButton::SetSplitGlyph

Kojarzy określony glif z bieżącą kontrolką przycisku podziału.

BOOL SetSplitGlyph(TCHAR chGlyph);

Parametry

chGlyph
[in] Znak, który określa glyph do użycia jako strzałkę listy rozwijanej przycisku podziału.

Wartość zwracana

Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.

Uwagi

Użyj tej metody tylko z kontrolkami, które mają styl przycisku BS_SPLITBUTTON lub BS_DEFSPLITBUTTON.

Glif to fizyczna reprezentacja znaku w określonej czcionki. Parametr chGlyph nie jest używany jako glif, ale zamiast tego służy do wybierania glifów z zestawu glifów zdefiniowanych przez system. Domyślna strzałka listy rozwijanej jest określana przez znak "6" i przypomina znak Unicode BLACK DOWN-POINTING TRIANGLE (U+25BC).

Ta metoda inicjuje mask element członkowski struktury BUTTON_SPLITINFO z flagą BCSIF_GLYPH i himlGlyph elementem członkowskim z parametrem chGlyph , a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO opisanym w zestawie Windows SDK.

CButton::SetSplitImageList

Kojarzy listę obrazów z bieżącą kontrolką przycisku podziału.

BOOL SetSplitImageList(CImageList* pSplitImageList);

Parametry

pSplitImageList
[in] Wskaźnik do obiektu CImageList w celu przypisania do bieżącej kontrolki przycisku podziału.

Wartość zwracana

Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.

Uwagi

Tej metody należy używać tylko z kontrolkami, których styl przycisku jest BS_SPLITBUTTON lub BS_DEFSPLITBUTTON.

Ta metoda inicjuje mask element członkowski struktury BUTTON_SPLITINFO z flagą BCSIF_IMAGE i himlGlyph elementem członkowskim z parametrem pSplitImageList , a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO opisanym w zestawie Windows SDK.

CButton::SetSplitInfo

Określa parametry określające sposób, w jaki system Windows rysuje bieżącą kontrolkę przycisku podziału.

BOOL SetSplitInfo(PBUTTON_SPLITINFO pInfo);

Parametry

pInfo
[in] Wskaźnik do struktury BUTTON_SPLITINFO definiującej bieżącą kontrolkę przycisku podziału.

Wartość zwracana

Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.

Uwagi

Tej metody należy używać tylko z kontrolkami, których styl przycisku jest BS_SPLITBUTTON lub BS_DEFSPLITBUTTON.

Ta metoda wysyła komunikat BCM_SETSPLITINFO opisany w zestawie Windows SDK.

Przykład

Pierwszy przykład kodu definiuje zmienną , m_splitButtonktóra jest używana do programowego uzyskiwania dostępu do kontrolki przycisku podziału.

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

W następnym przykładzie kodu zmienia się glyph, który jest używany na potrzeby strzałki rozwijanej przycisku podziału. W przykładzie jest zastępowany trójkąt w górę dla domyślnego trójkąta wskazującego na dół glif. Wyświetlany glyph zależy od znaku określonego BUTTON_SPLITINFO w elemencie himlGlyph członkowskim struktury. Trójkąt wskazujący w dół jest określony przez znak "6", a trójkąt wskazujący w górę jest określony przez znak "5". Aby uzyskać porównanie, zobacz metodę wygody CButton ::SetSplitGlyph.

/* 
   The drop-down arrow glyph is a function of the specified character. 
   The default "down" drop-down arrow glyph is specified by a 
   character '6'. Set the "up" arrow glyph, which is a character '5'.
   See the convenience method, SetSplitGlyph(), for comparison.
   */
BUTTON_SPLITINFO bsInfo = {0};
bsInfo.mask = BCSIF_GLYPH;
TCHAR chGlyph = _T('5'); // "up" arrow glyph
bsInfo.himlGlyph = (HIMAGELIST)chGlyph;
bRC = m_splitButton.SetSplitInfo(&bsInfo);

CButton::SetSplitSize

Ustawia prostokąt ograniczenia składnika listy rozwijanej bieżącego formantu przycisku podziału.

BOOL SetSplitSize(LPSIZE pSize);

Parametry

Rozmiar p
[in] Wskaźnik do struktury SIZE opisujący prostokąt ograniczenia.

Wartość zwracana

Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.

Uwagi

Tej metody należy używać tylko z kontrolkami, których styl przycisku jest BS_SPLITBUTTON lub BS_DEFSPLITBUTTON.

Po rozwinięciu kontrolki przycisku podziału można wyświetlić składnik listy rozwijanej, taki jak kontrolka listy lub kontrolka pagera. Ta metoda określa rozmiar prostokąta ograniczenia, który zawiera składnik listy rozwijanej.

Ta metoda inicjuje mask element członkowski struktury BUTTON_SPLITINFO z flagą BCSIF_SIZE i size elementem członkowskim z parametrem pSize , a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO opisanym w zestawie SDK systemu Windows.

Przykład

Pierwszy przykład kodu definiuje zmienną , m_splitButtonktóra jest używana do programowego uzyskiwania dostępu do kontrolki przycisku podziału. Ta zmienna jest używana w poniższym przykładzie.

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

Następny przykład kodu podwaja rozmiar strzałki rozwijanej przycisku podziału.

// Double the size of the split button drop-down arrow.
SIZE sz;
bRC = m_splitButton.GetSplitSize(&sz); // current size
sz.cx = sz.cx * 2;
sz.cy = sz.cy * 2;
bRC = m_splitButton.SetSplitSize(&sz);

CButton::SetSplitStyle

Ustawia styl bieżącej kontrolki przycisku podziału.

BOOL SetSplitStyle(UINT uSplitStyle);

Parametry

uSplitStyle
[in] Bitowa kombinacja stylów przycisku podziału. Aby uzyskać więcej informacji, zobacz uSplitStyle element członkowski struktury BUTTON_SPLITINFO .

Wartość zwracana

Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.

Uwagi

Tej metody należy używać tylko z kontrolkami, których styl przycisku jest BS_SPLITBUTTON lub BS_DEFSPLITBUTTON.

Style przycisku podziału określają wyrównanie, współczynnik proporcji i format graficzny, za pomocą którego system Windows rysuje ikonę przycisku podziału. Aby uzyskać więcej informacji, zobacz uSplitStyle element członkowski struktury BUTTON_SPLITINFO .

Ta metoda inicjuje mask element członkowski struktury BUTTON_SPLITINFO z flagą BCSIF_STYLE i uSplitStyle elementem członkowskim z parametrem uSplitStyle , a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO opisanym w zestawie SDK systemu Windows.

Przykład

Pierwszy przykład kodu definiuje zmienną , m_splitButtonktóra jest używana do programowego uzyskiwania dostępu do kontrolki przycisku podziału.

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

Następny przykład kodu ustawia styl strzałki rozwijanej przycisku podziału. Styl BCSS_ALIGNLEFT wyświetla strzałkę po lewej stronie przycisku, a styl BCSS_STRETCH zachowuje proporcje strzałki listy rozwijanej po zmianie rozmiaru przycisku.

/* 
    Set the style of the split button drop-down arrow: Display the 
    arrow on the left and retain the arrow's proportions when resizing 
    the control.
    */
bRC = m_splitButton.SetSplitStyle(BCSS_ALIGNLEFT | BCSS_STRETCH);

CButton::SetState

Określa, czy kontrolka przycisku jest wyróżniona, czy nie.

void SetState(BOOL bHighlight);

Parametry

bHighlight
Określa, czy przycisk ma być wyróżniony. Wartość niezerowa wyróżnia przycisk; wartość 0 usuwa wszelkie wyróżnianie.

Uwagi

Wyróżnianie wpływa na zewnętrzną część kontrolki przycisku. Nie ma wpływu na stan sprawdzania przycisku radiowego lub pola wyboru.

Kontrolka przycisku jest automatycznie wyróżniona, gdy użytkownik kliknie i przytrzymuje lewy przycisk myszy. Wyróżnianie jest usuwane, gdy użytkownik zwolni przycisk myszy.

Przykład

CButton myPushButton;

// Create a push button.
myPushButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                    CRect(10, 10, 100, 30), pParentWnd, 1);

// Invert the highlight state of the button.
myPushButton.SetState(!(myPushButton.GetState() & 0x0004));

CButton::SetTextMargin

Wywołaj tę metodę, aby ustawić margines CButton tekstu obiektu.

BOOL SetTextMargin(RECT* pmargin);

Parametry

pmargin
Wskaźnik do nowego marginesu tekstu.

Wartość zwracana

Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.

Uwagi

Ta funkcja składowa emuluje funkcjonalność komunikatu BCM_SETTEXTMARGIN zgodnie z opisem w sekcji Przyciski zestawu Windows SDK.

Zobacz też

Klasa CWnd
Wykres hierarchii
Klasa CWnd
Klasa CComboBox
Klasa CEdit
Klasa CListBox
Klasa CScrollBar
Klasa CStatic
Klasa CBitmapButton
Klasa CDialog