Klasa CButton

Udostępnia funkcje Windows przycisków.

Składnia

class CButton : public CWnd

Elementy członkowskie

Konstruktory publiczne

Nazwa Opis
CButton::CButton Konstruuje CButton obiekt .

Metody publiczne

Nazwa Opis
CButton::Create Tworzy kontrolkę Windows i dołącza ją do CButton obiektu .
CButton::D rawItem Przesłoń, aby narysować obiekt rysowany przez CButton właściciela.
CButton::GetBitmap Pobiera dojście mapy bitowej ustawione wcześniej za pomocą 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ą setCursor.
CButton::GetIcon Pobiera dojście ikony ustawionej wcześniej za pomocą setIcon.
CButton::GetIdealSize Pobiera idealny rozmiar kontrolki przycisku.
CButton::GetImageList Pobiera listę obrazów kontrolki przycisku.
CButton::GetNote Pobiera składnik notatki 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 definiujące bieżącą kontrolkę przycisku podziału.
CButton::GetSplitSize Pobiera prostokąt ograniczający składnika listy rozwijanej bieżącej kontrolki przycisku podziału.
CButton::GetSplitStyle Pobiera style przycisku podziału, które definiują bieżącą kontrolkę przycisku podziału.
CButton::GetState Pobiera stan sprawdzania, stan wyróżnienia 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żącej kontrolki 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 ograniczający składnika listy rozwijanej bieżącej kontrolki 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 klikać i wyłączać. Przyciski mogą być używane samodzielnie lub w grupach i mogą być oznaczone etykietami 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 przycisk wypychania. Obiekt CButton może stać się dowolnym z nich, zgodnie ze stylem przycisku określonym podczas inicjowania przez funkcję członkowski Create.

Ponadto klasa CBitmapButtonCButton pochodna klasy obsługuje tworzenie kontrolek przycisków oznaczonych etykietą obrazów map bitowych zamiast tekstu. Obiekt CBitmapButton może mieć oddzielne mapy bitowe dla stanów up, down, focused i disabled przycisku.

Kontrolkę przycisku można utworzyć na podstawie szablonu okna dialogowego lub bezpośrednio w kodzie. W obu przypadkach najpierw wywołaj CButtonCButton konstruktor w celu skonstruowania obiektu, Create a następnie wywołaj funkcję członkowski, aby utworzyć kontrolkę Windows przycisku i dołączyć ją do CButton obiektu .

Konstrukcja może być procesem jednoetapowym w klasie pochodzącej od klasy CButton. Napisz konstruktor dla klasy pochodnej i wywołaj z Create poziomu konstruktora.

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

Każdy wpis mapy komunikatów ma następującą postać:

ON_Notification(id, memberFxn)

gdzie id określa identyfikator okna podrzędnego kontrolki wysyłającej powiadomienie, a element memberFxn to nazwa funkcji nadrzędnej elementu członkowskiego, która jest zapisywana w celu obsługi powiadomienia.

Prototyp funkcji nadrzędnej jest następujący:

afx_msg void memberFxn();

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

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

Jeśli tworzysz obiekt CButton z zasobu okna dialogowego, CButton obiekt jest automatycznie niszczony, gdy użytkownik zamknie okno dialogowe.

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

Hierarchia dziedziczenia

Cobject

Ccmdtarget

Cwnd

CButton

Wymagania

Nagłówek: afxwin.h

CButton::CButton

Konstruuje CButton obiekt .

CButton();

Przykład

// Declare a button object.
CButton myButton;

CButton::Create

Tworzy kontrolkę 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 przycisku do przycisku.

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

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

Nid
Określa identyfikator kontrolki przycisku.

Wartość zwracana

Jeśli to się powiedzie, niezerowe; w przeciwnym razie 0.

Uwagi

Obiekt tworzy się CButton w dwóch krokach. Najpierw wywołaj konstruktor, Createa następnie wywołaj obiekt , który Windows kontrolkę przycisku i dołącza ją do CButton obiektu .

Jeśli styl WS_VISIBLE, Windows wysyła kontrolkę przycisku wszystkie komunikaty wymagane do aktywowania i pokazania przycisku.

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

  • WS_CHILD Zawsze

  • WS_VISIBLE zwykle

  • WS_DISABLED rzadko

  • WS_GROUP Do grupowania kontrolek

  • WS_TABSTOP Aby uwzględnić przycisk w kolejności tabuł

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 wizualny aspekt przycisku rysowanego przez właściciela uległ zmianie.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Parametry

lpDrawItemStruct
Długi wskaźnik do struktury DRAWITEMSTRUCT . Struktura zawiera informacje o elementie do narysowania i wymaganym typie rysowania.

Uwagi

Przycisk rysowany przez właściciela ma BS_OWNERDRAW styl. Zastąp tę funkcję członkowski, aby zaimplementować rysowanie dla obiektu rysowanego przez CButton właściciela. Aplikacja powinna przywrócić wszystkie obiekty graficznego interfejsu urządzenia (GDI) wybrane dla kontekstu wyświetlania dostarczonego w lpDrawItemStruct przed zakończeniem działania funkcji członkowskiej.

Zobacz również wartości BS_ stylu.

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ę członkowski, aby uzyskać dojście do mapy bitowej, wcześniej ustawionej za pomocą setBitmap, która jest skojarzona z przyciskiem.

HBITMAP GetBitmap() const;

Wartość zwracana

Dojście do mapy bitowej. WARTOŚĆ NULL, jeśli wcześniej nie określono 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 BS_ stylu, a nie żadnego 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 przez kontrolkę przycisku utworzoną za pomocą stylu BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON lub BS_3STATE to jedna z następujących wartości:

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

Jeśli przycisk ma jakikolwiek 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ę członkowski, aby uzyskać uchwyt kursora, wcześniej ustawionego za pomocą setCursor, który jest skojarzony z przyciskiem.

HCURSOR GetCursor();

Wartość zwracana

Uchwyt do obrazu kursora. WARTOŚĆ NULL, jeśli wcześniej nie określono 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ę członkowski, aby uzyskać dojście do ikony, która została wcześniej ustawiona za pomocą setIcon, która jest skojarzona z przyciskiem.

HICON GetIcon() const;

Wartość zwracana

Dojście do ikony. WARTOŚĆ NULL, jeśli wcześniej nie określono 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

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

Wartość zwracana

Jeśli to się powiedzie, niezerowe; w przeciwnym razie 0.

Uwagi

Ta funkcja członkowski 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 obiektu CButton .

Wartość zwracana

Jeśli to się powiedzie, niezerowe; w przeciwnym razie 0.

Uwagi

Ta funkcja członkowski emuluje funkcjonalność 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 wywołujący jest odpowiedzialny za przydzielanie i cofanie alokacji. Jeśli zwracana wartość to TRUE, bufor zawiera tekst notatki, który jest skojarzony z bieżącą kontrolką linku polecenia; w przeciwnym razie bufor jest niezmieniony.

cchNote
[in, out] Wskaźnik do zmiennej liczby całkowitej bez znaku. Gdy ta metoda jest wywoływana, 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ą linku polecenia. Jeśli zwracana wartość to FALSE, zmienna zawiera rozmiar buforu wymagany do jej zanotu.

Wartość zwracana

W pierwszym przeciążeniu obiekt CString , który zawiera tekst notatki skojarzony z bieżącą kontrolką linku polecenia.

-lub-

W drugim przeciążeniu wartość TRUE, jeśli ta metoda powiedzie się; w przeciwnym razie wartość FALSE.

Uwagi

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

Ta metoda wysyła komunikat BCM_GETNOTE, który jest opisany w 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 BS_COMMANDLINK lub BS_DEFCOMMANDLINK.

Ta metoda wysyła komunikat BCM_GETNOTELENGTH, który jest opisany w Windows SDK.

CButton::GetSplitGlyph

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

TCHAR GetSplitGlyph() const;

Wartość zwracana

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

Uwagi

Symbol to fizyczna reprezentacja znaku w określonej czcionce. Na przykład kontrolka przycisku podziału może być dekorowany za pomocą symboli znaku wyboru Unicode (U+2713).

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

Ta metoda inicjuje mask członka struktury BUTTON_SPLITINFO za pomocą flagi BCSIF_GLYPH, a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO opisanym w Windows SDK. Gdy funkcja message zwraca wartość , ta metoda pobiera glif z himlGlyph składowej 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 BS_SPLITBUTTON lub BS_DEFSPLITBUTTON.

Ta metoda inicjuje mask składową struktury BUTTON_SPLITINFO za pomocą flagi BCSIF_IMAGE, a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO opisanym w Windows SDK. Gdy funkcja message zwraca wartość , ta metoda pobiera listę obrazów z himlGlyph składowej struktury.

CButton::GetSplitInfo

Pobiera parametry, które określają, Windows pobiera 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żącej kontrolce przycisku podziału. Wywołujący jest odpowiedzialny za alokowanie struktury.

Wartość zwracana

Wartość TRUE, jeśli ta metoda powiedzie się; w przeciwnym razie wartość FALSE.

Uwagi

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

Ta metoda wysyła komunikat BCM_GETSPLITINFO, który jest opisany w Windows SDK.

CButton::GetSplitSize

Pobiera prostokąt ograniczający składnika listy rozwijanej bieżącej kontrolki przycisku podziału.

BOOL GetSplitSize(LPSIZE pSize) const;

Parametry

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

Wartość zwracana

Wartość TRUE, jeśli ta metoda powiedzie się; w przeciwnym razie wartość FALSE.

Uwagi

Tej metody należy używać tylko z kontrolkami, których styl przycisku 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 stronicowania. Ta metoda pobiera prostokąt ograniczający, który zawiera składnik listy rozwijanej.

Ta metoda inicjuje mask składową struktury BUTTON_SPLITINFO za pomocą flagi BCSIF_SIZE, a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO opisanym w zestawie WINDOWS SDK. Gdy funkcja message zwraca wartość , ta metoda pobiera prostokąt ograniczający z size składowej 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 członka BUTTON_SPLITINFO struktury.

Uwagi

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

Style przycisku podziału określają wyrównanie, współczynnik proporcji i format graficzny, Windows za pomocą Windows przycisku podziału.

Ta metoda inicjuje mask członka struktury BUTTON_SPLITINFO za pomocą flagi BCSIF_STYLE, a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO opisanym w zestawie WINDOWS SDK. Gdy funkcja message zwraca wartość , ta metoda pobiera uSplitStyle style przycisku podziału z składowej 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 Zostanie naciśnięta kontrolka przycisku.
BST_FOCUS 0x0008 Fokus kontrolki przycisku jest fokus.

Uwagi

Kontrolka przycisku z BS_3STATE lub BS_AUTO3STATE tworzy pole wyboru z trzecim stanem o nazwie nieokreślony stan. Stan nieokreślony wskazuje, że pole wyboru nie jest 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 tekstu CButton obiektu.

BOOL GetTextMargin(RECT* pmargin);

Parametry

pmargin
Wskaźnik do marginesu tekstu CButton obiektu.

Wartość zwracana

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

Uwagi

Ta funkcja członkowski emuluje funkcjonalność BCM_GETTEXTMARGIN, zgodnie z opisem w sekcji Przyciski zestawu WINDOWS SDK.

CButton::SetBitmap

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

HBITMAP SetBitmap(HBITMAP hBitmap);

Parametry

hBitmap
Uchwyt mapy bitowej.

Wartość zwracana

Dojście mapy bitowej skojarzonej wcześniej z przyciskiem .

Uwagi

Mapa bitowa zostanie automatycznie umieszczona na twarzy przycisku, domyślnie wyśrodkowana. Jeśli mapa bitowa jest zbyt duża dla przycisku, zostanie przycię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, SetBitmap na przycisk używa tylko jednej mapy bitowej. Po naciśnięciu przycisku mapa bitowa zostanie wyświetlona w celu przesunięcia w dół i w prawo.

Użytkownik jest odpowiedzialny za wydanie mapy bitowej po jej użyciu.

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 (styl nStyle)
Określa styl przycisku.

bRedraw
Określa, czy przycisk ma zostać ponownie narysowany. Wartość niezerowa ponownie narysuje przycisk. Wartość 0 nie powoduje ponownego narysowania przycisku. Przycisk jest domyślnie ponownie narysowany.

Uwagi

Użyj funkcji GetButtonStyle member, aby pobrać styl przycisku. Słowo niskiej kolejności stylu przycisku ukończenia to styl specyficzny 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

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

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

Uwagi

Ta funkcja członkowski nie ma wpływu na pushbutton.

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ę członkowski, aby skojarzyć nowy kursor z przyciskiem .

HCURSOR SetCursor(HCURSOR hCursor);

Parametry

hCursor
Uchwyt kursora.

Wartość zwracana

Uchwyt kursora skojarzonego wcześniej z przyciskiem.

Uwagi

Kursor zostanie automatycznie umieszczony na twarzy przycisku, domyślnie wyśrodkowany. Jeśli kursor jest zbyt duży dla przycisku, zostanie przycię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 na przycisk używa tylko jednego kursora. Po naciśnięciu przycisku kursor pojawia się, aby przesunąć 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żącej kontrolki przycisku podziału.

BOOL SetDropDownState(BOOL fDropDown);

Parametry

fDropDown
[in] Wartość TRUE w celu BST_DROPDOWNPUSHED stanu; w przeciwnym razie wartość FALSE.

Wartość zwracana

Wartość TRUE, jeśli ta metoda powiedzie się; w przeciwnym razie wartość FALSE.

Uwagi

Kontrolka przycisku podzielonego ma styl BS_SPLITBUTTON lub BS_DEFSPLITBUTTON składa się z przycisku i strzałki listy rozwijanej po prawej stronie. Aby uzyskać więcej informacji, zobacz Style przycisku. 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 jako zacieniowana, aby wskazać stan.

Ta metoda wysyła komunikat BCM_SETDROPDOWNSTATE, który jest opisany w 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;

W następnym przykładzie kodu ustawiany jest stan kontrolki przycisku podziału, aby wskazać, że strzałka listy rozwijanej jest wypychana.

/* 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 elevation requiredna , co jest niezbędne, aby kontrolka wyświetlała ikonę zabezpieczeń z podwyższonym poziomem uprawnień.

BOOL SetElevationRequired(BOOL fElevationRequired);

Parametry

fElevationRequired
[in] Wartość TRUE w celu ustawienia elevation required stanu; w przeciwnym razie wartość FALSE.

Wartość zwracana

Wartość TRUE, jeśli ta metoda powiedzie się; w przeciwnym razie wartość FALSE.

Uwagi

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

Ta metoda wysyła komunikat BCM_SETSHIELD, który jest opisany w Windows SDK.

CButton::SetIcon

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

HICON SetIcon(HICON hIcon);

Parametry

hIcon
Uchwyt ikony.

Wartość zwracana

Uchwyt ikony skojarzonej wcześniej z przyciskiem.

Uwagi

Ikona zostanie automatycznie umieszczona na twarzy przycisku, domyślnie wyśrodkowana. Jeśli ikona jest zbyt duża dla przycisku, zostanie przycię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, SetIcon na przycisk używa tylko jednej ikony. 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, wartość FALSE w przypadku niepowodzenia.

Uwagi

Ta funkcja członkowski emuluje funkcjonalność BCM_SETIMAGELIST, zgodnie z opisem w sekcji Przyciski zestawu Windows SDK.

CButton::SetNote

Ustawia tekst notatki dla bieżącego polecenia łącza formantu.

BOOL SetNote(LPCTSTR lpszNote);

Parametry

lpszNote
[in] Wskaźnik do ciągu Unicode ustawionego jako tekst notatki dla kontrolki linku polecenia.

Wartość zwracana

Wartość TRUE, jeśli ta metoda powiedzie się; w przeciwnym razie wartość FALSE.

Uwagi

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

Ta metoda wysyła komunikat BCM_SETNOTE, który jest opisany w 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;

W następnym przykładzie kodu ustawiany jest 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 (chGlyph)
[in] Znak określający glif, który ma być używać jako strzałka listy rozwijanej przycisku podziału.

Wartość zwracana

Wartość TRUE, jeśli ta metoda powiedzie się; w przeciwnym razie wartość FALSE.

Uwagi

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

Symbol to fizyczna reprezentacja znaku w określonej czcionce. Parametr chGlyph nie jest używany jako glif, ale zamiast tego służy do wybierania glifów z zestawu zdefiniowanych przez system glifów. Domyślny glyph strzałki listy rozwijanej jest określony przez znak "6" i przypomina znak Unicode BLACK DOWN-POINTING TRÓJKĄT (U + 25BC).

Ta metoda inicjuje mask składową struktury BUTTON_SPLITINFO za pomocą flagi himlGlyph BCSIF_GLYPH i składową z parametrem chGlyph, a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO, który jest opisany 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 do przypisania do bieżącej kontrolki przycisku podziału.

Wartość zwracana

Wartość TRUE, jeśli ta metoda powiedzie się; w przeciwnym razie wartość FALSE.

Uwagi

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

Ta metoda inicjuje mask składową struktury BUTTON_SPLITINFO za pomocą flagi himlGlyph BCSIF_IMAGE i składową z parametrem pSplitImageList, a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO, który jest opisany w zestawie SDK Windows.

CButton::SetSplitInfo

Określa parametry, które określają, Windows pobiera bieżącą kontrolkę przycisku podziału.

BOOL SetSplitInfo(PBUTTON_SPLITINFO pInfo);

Parametry

Pinfo
[in] Wskaźnik do BUTTON_SPLITINFO, która definiuje bieżącą kontrolkę przycisku podziału.

Wartość zwracana

Wartość TRUE, jeśli ta metoda powiedzie się; w przeciwnym razie wartość FALSE.

Uwagi

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

Ta metoda wysyła komunikat BCM_SETSPLITINFO, który jest opisany w Windows SDK.

Przykład

Pierwszy przykład kodu definiuje zmienną m_splitButton, któ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ę glif, który jest używany dla strzałki listy rozwijanej przycisku podziału. W przykładzie domyślnym glyphem trójkąta w dół jest zastępowanie trójkątem w górę. Wyświetlany glif zależy od znaku, który został określony w himlGlyph składowej BUTTON_SPLITINFO struktury. Glyph trójkąta w dół jest określony przez znak "6", a trójkąt w górę jest określony przez znak "5". Aby uzyskać porównanie, zobacz wygodną metodę 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 ograniczający składnika listy rozwijanej bieżącej kontrolki przycisku podziału.

BOOL SetSplitSize(LPSIZE pSize);

Parametry

pSize
[in] Wskaźnik do struktury SIZE , która opisuje prostokąt ograniczający.

Wartość zwracana

Wartość TRUE, jeśli ta metoda powiedzie się; w przeciwnym razie wartość FALSE.

Uwagi

Tej metody należy używać tylko z kontrolkami, których styl przycisku 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 stronicowania. Ta metoda określa rozmiar prostokąta ograniczonego, który zawiera składnik listy rozwijanej.

Ta metoda inicjuje mask składową struktury BUTTON_SPLITINFO za pomocą flagi size BCSIF_SIZE i składową z parametrem pSize, a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO opisanym w zestawie WINDOWS SDK.

Przykład

Pierwszy przykład kodu definiuje zmienną m_splitButton, któ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 listy 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 członka BUTTON_SPLITINFO struktury.

Wartość zwracana

Wartość TRUE, jeśli ta metoda powiedzie się; w przeciwnym razie wartość FALSE.

Uwagi

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

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

Ta metoda inicjuje mask składową struktury BUTTON_SPLITINFO za pomocą flagi uSplitStyle BCSIF_STYLE i składową z parametrem uSplitStyle, a następnie wysyła tę strukturę w komunikacie BCM_GETSPLITINFO opisanym w zestawie WINDOWS SDK.

Przykład

Pierwszy przykład kodu definiuje zmienną m_splitButton, któ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 jest ustawiany styl strzałki listy 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 podczas zmiany 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.

void SetState(BOOL bHighlight);

Parametry

bHighlight
Określa, czy przycisk ma być wyróżniony. Wartość niezerowa wyróżnia przycisk; Wartość 0 powoduje usunięcie wyróżniania.

Uwagi

Wyróżnianie wpływa na wygląd kontrolki przycisku. Nie ma to wpływu na stan sprawdzania przycisku radiowego lub pola wyboru.

Kontrolka przycisku jest automatycznie wyróżniana, 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 tekstu CButton obiektu.

BOOL SetTextMargin(RECT* pmargin);

Parametry

pmargin
Wskaźnik do nowego marginesu tekstu.

Wartość zwracana

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

Uwagi

Ta funkcja członkowski emuluje funkcjonalność komunikatu BCM_SETTEXTMARGIN, zgodnie z opisem w sekcji Przyciski Windows SDK.

Zobacz też

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