Sdílet prostřednictvím


CButton – třída

Poskytuje funkce ovládacích prvků tlačítek Windows.

Syntaxe

class CButton : public CWnd

Členové

Veřejné konstruktory

Název Popis
CButton::CButton CButton Vytvoří objekt.

Veřejné metody

Název Popis
CButton::Create Vytvoří ovládací prvek tlačítko Windows a připojí ho k objektu CButton .
CButton::D rawItem Přepsáním nakreslete objekt nakreslený CButton vlastníkem.
CButton::GetBitmap Načte popisovač rastrového obrázku dříve nastavený pomocí SetBitmap.
CButton::GetButtonStyle Načte informace o stylu ovládacího prvku tlačítka.
CButton::GetCheck Načte stav kontroly ovládacího prvku tlačítka.
CButton::GetCursor Načte úchyt obrázku kurzoru, který byl dříve nastaven pomocí SetCursor.
CButton::GetIcon Načte popisovač ikony, která byla dříve nastavena pomocí SetIcon.
CButton::GetIdealSize Načte ideální velikost ovládacího prvku tlačítka.
Tlačítko tlačítka::GetImageList Načte seznam obrázků ovládacího prvku tlačítka.
CButton::GetNote Načte komponentu poznámky aktuálního ovládacího prvku pro propojení příkazů.
CButton::GetNoteLength Načte délku textu poznámky pro aktuální ovládací prvek odkazu na příkaz.
CButton::GetSplitGlyph Načte glyf přidružený k aktuálnímu ovládacímu prvku split button.
CButton::GetSplitImageList Načte seznam obrázků pro aktuální ovládací prvek rozděleného tlačítka.
CButton::GetSplitInfo Načte informace, které definují aktuální ovládací prvek rozděleného tlačítka.
CButton::GetSplitSize Načte ohraničující obdélník součásti rozevíracího seznamu aktuálního ovládacího prvku split button.
CButton::GetSplitStyle Načte styly rozdělených tlačítek, které definují aktuální ovládací prvek rozděleného tlačítka.
CButton::GetState Načte stav kontroly, stav zvýraznění a detailní stav ovládacího prvku tlačítka.
CButton::GetTextMargin Načte textový okraj ovládacího prvku tlačítka.
CButton::SetBitmap Určuje rastrový obrázek, který se má zobrazit na tlačítku.
CButton::SetButtonStyle Změní styl tlačítka.
Tlačítko tlačítka::SetCheck Nastaví stav kontroly ovládacího prvku tlačítka.
CButton::SetCursor Určuje obrázek kurzoru, který se má zobrazit na tlačítku.
CButton::SetDropDownState Nastaví rozevírací seznam aktuálního ovládacího prvku rozděleného tlačítka.
CButton::SetIcon Určuje ikonu, která se má zobrazit na tlačítku.
Tlačítko tlačítka::SetImageList Nastaví seznam obrázků ovládacího prvku tlačítko.
CButton::SetNote Nastaví poznámku v ovládacím prvku aktuálního příkazového odkazu.
CButton::SetSplitGlyph Přidruží zadaný glyf k aktuálnímu ovládacímu prvku rozděleného tlačítka.
CButton::SetSplitImageList Přidruží seznam obrázků k aktuálnímu ovládacímu prvku rozděleného tlačítka.
CButton::SetSplitInfo Určuje informace, které definují aktuální ovládací prvek rozděleného tlačítka.
CButton::SetSplitSize Nastaví ohraničující obdélník součásti rozevíracího seznamu aktuálního ovládacího prvku rozděleného tlačítka.
CButton::SetSplitStyle Nastaví styl aktuálního ovládacího prvku rozděleného tlačítka.
CButton::SetState Nastaví stav zvýraznění ovládacího prvku tlačítka.
CButton::SetTextMargin Nastaví textový okraj ovládacího prvku tlačítka.

Poznámky

Ovládací prvek tlačítka je malé obdélníkové podřízené okno, na které lze kliknout a vypnout. Tlačítka se dají použít samostatně nebo ve skupinách a dají se označit nebo zobrazit bez textu. Tlačítko se obvykle změní, když na něj uživatel klikne.

Typická tlačítka jsou zaškrtávací políčko, přepínač a tlačítko. Objekt CButton se může stát libovolným z nich podle stylu tlačítka zadaného při inicializaci pomocí funkce Vytvořit člen.

Kromě toho CBitmapButton třída odvozená z CButton podporuje vytváření ovládacích prvků tlačítek označených rastrovými obrázky místo textu. A CBitmapButton může mít samostatné rastrové obrázky pro stav tlačítka nahoru, dolů, prioritní a zakázané.

Ovládací prvek tlačítka můžete vytvořit buď ze šablony dialogového okna, nebo přímo v kódu. V obou případech nejprve zavolejte konstruktor CButton , který objekt sestaví CButton . Potom zavolejte Create členovu funkci, která vytvoří ovládací prvek tlačítko Windows a připojí ho k objektu CButton .

Konstrukce může být jednokrokový proces ve třídě odvozené od CButton. Napište konstruktor pro odvozenou třídu a volání Create z konstruktoru.

Pokud chcete zpracovávat zprávy oznámení systému Windows odeslané ovládacím tlačítkem do nadřazeného prvku (obvykle třída odvozená z CDialog), přidejte položku mapy zpráv a členovou funkci obslužné rutiny zpráv do nadřazené třídy pro každou zprávu.

Každá položka mapy zpráv má následující tvar:

ON_Notification ( ID, memberFxn )

where ID určuje ID podřízeného okna ovládacího prvku, který odesílá oznámení a memberFxn je název nadřazené členské funkce, kterou jste napsali pro zpracování oznámení.

Prototyp funkce nadřazeného objektu je následující:

afx_msg void memberFxn();

Potenciální položky mapy zpráv jsou následující:

Položka mapy Odesláno nadřazené, když...
ON_BN_CLICKED Uživatel klikne na tlačítko.
ON_BN_DOUBLECLICKED Uživatel dvakrát klikne na tlačítko.

Pokud vytvoříte CButton objekt z prostředku dialogového okna, CButton objekt se po zavření dialogového okna automaticky zničí.

Pokud vytvoříte CButton objekt v okně, budete ho možná muset zničit. Pokud vytvoříte CButton objekt na haldě pomocí new funkce, musíte volat delete objekt, aby ho zničil, když uživatel zavře ovládací prvek tlačítko Windows. Pokud vytvoříte CButton objekt v zásobníku nebo je vložen do nadřazeného objektu dialogového okna, dojde k jeho automatickému zničení.

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

CWnd

CButton

Požadavky

Hlavička: afxwin.h

CButton::CButton

CButton Vytvoří objekt.

CButton();

Příklad

// Declare a button object.
CButton myButton;

CButton::Create

Vytvoří ovládací prvek tlačítko Windows a připojí ho k objektu CButton .

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

Parametry

lpszCaption
Určuje text ovládacího prvku tlačítka.

dwStyle
Určuje styl ovládacího prvku tlačítka. Na tlačítko použijte libovolnou kombinaci stylů tlačítek.

Rect
Určuje velikost a umístění ovládacího prvku tlačítka. Může to být CRect objekt nebo RECT struktura.

pParentWnd
Určuje nadřazené okno ovládacího prvku tlačítka, obvykle .CDialog Nesmí mít hodnotu NULL.

Nid
Určuje ID ovládacího prvku tlačítka.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Objekt vytvoříte CButton ve dvou krocích. Nejprve zavolejte konstruktor a potom volání Create, který vytvoří ovládací prvek windows tlačítko a připojí ho k objektu CButton .

Pokud je zadaný styl WS_VISIBLE, systém Windows odešle ovládací prvek tlačítka všechny zprávy potřebné k aktivaci a zobrazení tlačítka.

U ovládacího prvku tlačítka použijte následující styly oken:

  • WS_CHILD Always

  • WS_VISIBLE obvykle

  • zřídka WS_DISABLED

  • WS_GROUP Seskupit ovládací prvky

  • WS_TABSTOP Zahrnutí tlačítka do pořadí ovládacích prvků

Příklad

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

Volá se podle architektury, když se změnil vizuální aspekt tlačítka nakresleného vlastníkem.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Parametry

lpDrawItem – struktura
Dlouhý ukazatel na strukturu DRAWITEMSTRUCT . Struktura obsahuje informace o položce, kterou chcete nakreslit, a typ požadovaného výkresu.

Poznámky

Tlačítko nakreslené vlastníkem má sadu stylů BS_OWNERDRAW. Přepište tuto členovou funkci tak, aby implementovaly výkres pro objekt nakreslený CButton vlastníkem. Aplikace by měla obnovit všechny objekty rozhraní grafického zařízení (GDI) vybrané pro kontext zobrazení zadaný v lpDrawItemStruct před ukončením členské funkce.

Podívejte se také na hodnoty stylu BS_ .

Příklad

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

Voláním této členské funkce získáte popisovač rastrového obrázku, který byl dříve nastaven pomocí SetBitmap, který je přidružen k tlačítku.

HBITMAP GetBitmap() const;

Návratová hodnota

Úchyt rastrového obrázku. Null pokud není dříve zadán žádný rastrový obrázek.

Příklad

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

Načte informace o stylu ovládacího prvku tlačítka.

UINT GetButtonStyle() const;

Návratová hodnota

Vrátí styly tlačítek pro tento CButton objekt. Tato funkce vrátí pouze hodnoty stylu BS_ , nikoli žádný z ostatních stylů oken.

Příklad

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

Načte stav zaškrtnutí přepínače nebo zaškrtávacího políčka.

int GetCheck() const;

Návratová hodnota

Návratová hodnota z ovládacího prvku tlačítka vytvořeného pomocí BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON nebo stylu BS_3STATE je jedna z následujících hodnot:

Hodnota Význam
BST_UNCHECKED Stav tlačítka není zaškrtnutý.
BST_CHECKED Stav tlačítka je zaškrtnutý.
BST_INDETERMINATE Stav tlačítka je neurčitý (platí jenom v případě, že má tlačítko BS_3STATE nebo styl BS_AUTO3STATE).

Pokud má tlačítko jiný styl, návratová hodnota se BST_UNCHECKED.

Příklad

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

Voláním této členské funkce získáte úchyt kurzoru, který byl dříve nastaven pomocí SetCursor, který je přidružen k tlačítku.

HCURSOR GetCursor();

Návratová hodnota

Úchyt pro obrázek kurzoru. Null pokud není dříve zadán žádný kurzor.

Příklad

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

Voláním této členské funkce získáte popisovač ikony, která byla dříve nastavena pomocí SetIcon, která je přidružena k tlačítku.

HICON GetIcon() const;

Návratová hodnota

Úchyt ikony. Null pokud není dříve zadána žádná ikona.

Příklad

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

Načte ideální velikost ovládacího prvku tlačítka.

BOOL GetIdealSize(SIZE* psize);

Parametry

psize
Ukazatel na aktuální velikost tlačítka.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Tato členová funkce emuluje funkce BCM_GETIDEALSIZE zprávy, jak je popsáno v části Tlačítka sady Windows SDK.

Tlačítko tlačítka::GetImageList

Voláním této metody získáte seznam obrázků z ovládacího prvku tlačítka.

BOOL GetImageList(PBUTTON_IMAGELIST pbuttonImagelist);

Parametry

pbuttonImagelist
Ukazatel na seznam obrázků objektu CButton .

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Tato členová funkce emuluje funkce BCM_GETIMAGELIST zprávy, jak je popsáno v části Tlačítka sady Windows SDK.

CButton::GetNote

Načte text poznámky přidružený k aktuálnímu ovládacímu prvku odkazu na příkaz.

CString GetNote() const;

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

Parametry

lpszNote
[ven] Ukazatel na vyrovnávací paměť, za kterou je volající zodpovědný za přidělení a uvolnění. Pokud je návratová hodnota PRAVDA, vyrovnávací paměť obsahuje text poznámky, který je přidružen k aktuálnímu ovládacímu prvku příkazového odkazu; jinak se vyrovnávací paměť nezmění.

cchNote
[in, out] Ukazatel na celočíselnou proměnnou bez znaménka Při zavolání této metody obsahuje proměnná velikost vyrovnávací paměti určené parametrem lpszNote . Pokud tato metoda vrátí, pokud návratová hodnota je PRAVDA, proměnná obsahuje velikost poznámky přidružené k aktuálnímu ovládacímu prvku příkazového odkazu. Pokud je návratová hodnota NEPRAVDA, proměnná obsahuje velikost vyrovnávací paměti potřebnou k zahrnutí poznámky.

Návratová hodnota

V prvním přetížení CString objekt, který obsahuje text poznámky přidružený k aktuálnímu ovládacímu prvku příkazového odkazu.

nebo

V druhém přetížení, TRUE pokud tato metoda je úspěšná; jinak NEPRAVDA.

Poznámky

Tuto metodu použijte pouze u ovládacích prvků, jejichž styl tlačítka je BS_COMMANDLINK nebo BS_DEFCOMMANDLINK.

Tato metoda odešle BCM_GETNOTE zprávu, která je popsaná v sadě Windows SDK.

CButton::GetNoteLength

Načte délku textu poznámky pro aktuální ovládací prvek odkazu na příkaz.

UINT GetNoteLength() const;

Návratová hodnota

Délka textu poznámky v 16bitovém kódu Unicode pro aktuální ovládací prvek odkazu na příkaz.

Poznámky

Tuto metodu použijte pouze u ovládacích prvků, jejichž styl tlačítka je BS_COMMANDLINK nebo BS_DEFCOMMANDLINK.

Tato metoda odešle BCM_GETNOTELENGTH zprávu, která je popsaná v sadě Windows SDK.

CButton::GetSplitGlyph

Načte glyf přidružený k aktuálnímu ovládacímu prvku split button.

TCHAR GetSplitGlyph() const;

Návratová hodnota

Znak glyph přidružený k aktuálnímu ovládacímu prvku rozděleného tlačítka.

Poznámky

Glyph je fyzická reprezentace znaku v určitém písmu. Ovládací prvek rozděleného tlačítka může být například zdoben znakem značky zaškrtnutí Unicode (U+2713).

Tuto metodu použijte pouze u ovládacích prvků, jejichž styl tlačítka je BS_SPLITBUTTON nebo BS_DEFSPLITBUTTON.

Tato metoda inicializuje mask člen struktury BUTTON_SPLITINFO příznakem BCSIF_GLYPH a pak odešle tuto strukturu ve zprávě BCM_GETSPLITINFO popsané v sadě Windows SDK. Když funkce zprávy vrátí, tato metoda načte glyph ze himlGlyph členu struktury.

CButton::GetSplitImageList

Načte seznam obrázků pro aktuální ovládací prvek rozděleného tlačítka.

CImageList* GetSplitImageList() const;

Návratová hodnota

Ukazatel na objekt CImageList .

Poznámky

Tuto metodu použijte pouze u ovládacích prvků, jejichž styl tlačítka je BS_SPLITBUTTON nebo BS_DEFSPLITBUTTON.

Tato metoda inicializuje mask člen struktury BUTTON_SPLITINFO příznakem BCSIF_IMAGE a pak odešle tuto strukturu ve zprávě BCM_GETSPLITINFO popsané v sadě Windows SDK. Když funkce zprávy vrátí, tato metoda načte seznam obrázků ze himlGlyph člena struktury.

CButton::GetSplitInfo

Načte parametry, které určují, jak Systém Windows nakreslí aktuální ovládací prvek rozděleného tlačítka.

BOOL GetSplitInfo(PBUTTON_SPLITINFO pInfo) const;

Parametry

pInfo
[ven] Ukazatel na BUTTON_SPLITINFO strukturu, která přijímá informace o aktuálním ovládacím prvku split button. Volající zodpovídá za přidělování struktury.

Návratová hodnota

TRUE, pokud tato metoda je úspěšná; jinak NEPRAVDA.

Poznámky

Tuto metodu použijte pouze u ovládacích prvků, jejichž styl tlačítka je BS_SPLITBUTTON nebo BS_DEFSPLITBUTTON.

Tato metoda odešle BCM_GETSPLITINFO zprávu, která je popsaná v sadě Windows SDK.

CButton::GetSplitSize

Načte ohraničující obdélník součásti rozevíracího seznamu aktuálního ovládacího prvku split button.

BOOL GetSplitSize(LPSIZE pSize) const;

Parametry

pSize
[ven] Ukazatel na strukturu SIZE , která přijímá popis obdélníku.

Návratová hodnota

TRUE, pokud tato metoda je úspěšná; jinak NEPRAVDA.

Poznámky

Tuto metodu použijte pouze u ovládacích prvků, jejichž styl tlačítka je BS_SPLITBUTTON nebo BS_DEFSPLITBUTTON.

Když je ovládací prvek rozděleného tlačítka rozbalený, může zobrazit rozevírací komponentu, například ovládací prvek seznam nebo ovládací prvek pager. Tato metoda načte ohraničující obdélník, který obsahuje rozevírací komponentu.

Tato metoda inicializuje mask člen struktury BUTTON_SPLITINFO příznakem BCSIF_SIZE a pak odešle tuto strukturu ve zprávě BCM_GETSPLITINFO popsané v sadě Windows SDK. Když funkce zprávy vrátí, tato metoda načte ohraničující obdélník ze size členu struktury.

CButton::GetSplitStyle

Načte styly rozdělených tlačítek, které definují aktuální ovládací prvek rozděleného tlačítka.

UINT GetSplitStyle() const;

Návratová hodnota

Bitové kombinace stylů rozdělených tlačítek. Další informace najdete v uSplitStyle členu struktury BUTTON_SPLITINFO .

Poznámky

Tuto metodu použijte pouze u ovládacích prvků, jejichž styl tlačítka je BS_SPLITBUTTON nebo BS_DEFSPLITBUTTON.

Styly rozdělených tlačítek určují zarovnání, poměr stran a grafický formát, se kterým Systém Windows nakreslí ikonu rozděleného tlačítka.

Tato metoda inicializuje mask člen struktury BUTTON_SPLITINFO příznakem BCSIF_STYLE a pak odešle tuto strukturu do BCM_GETSPLITINFO zprávy popsané v sadě Windows SDK. Když funkce zprávy vrátí, tato metoda načte styly rozděleného tlačítka ze uSplitStyle člena struktury.

CButton::GetState

Načte stav ovládacího prvku tlačítka.

UINT GetState() const;

Návratová hodnota

Bitové pole, které obsahuje kombinaci hodnot označující aktuální stav ovládacího prvku tlačítka. V následující tabulce jsou uvedeny možné hodnoty.

Stav tlačítka Hodnota Popis
BST_UNCHECKED 0x0000 Počáteční stav.
BST_CHECKED 0x0001 Ovládací prvek tlačítka je zaškrtnutý.
BST_INDETERMINATE 0x0002 Stav je neurčitý (je možné pouze v případech, kdy má ovládací prvek tlačítka tři stavy).
BST_PUSHED 0x0004 Ovládací prvek tlačítka se stiskne.
BST_FOCUS 0x0008 Ovládací prvek tlačítka má fokus.

Poznámky

Ovládací prvek tlačítka se stylem tlačítka BS_3STATE nebo BS_AUTO3STATE vytvoří zaškrtávací políčko, které má třetí stav s názvem neurčitý stav. Neurčitý stav označuje, že zaškrtávací políčko není zaškrtnuté ani nezaškrtnuté.

Příklad

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

Voláním této metody získáte textový okraj objektu CButton .

BOOL GetTextMargin(RECT* pmargin);

Parametry

pmargin
Ukazatel na textový okraj objektu CButton .

Návratová hodnota

Vrátí textový okraj. Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Tato členová funkce emuluje funkce BCM_GETTEXTMARGIN zprávy, jak je popsáno v části Tlačítka sady Windows SDK.

CButton::SetBitmap

Voláním této členské funkce přidružíte k tlačítku nový rastrový obrázek.

HBITMAP SetBitmap(HBITMAP hBitmap);

Parametry

hBitmap
Úchyt rastrového obrázku.

Návratová hodnota

Úchyt rastrového obrázku, který byl dříve přidružen k tlačítku.

Poznámky

Rastrový obrázek se automaticky umístí na tvář tlačítka, ve výchozím nastavení na střed. Pokud je rastrový obrázek pro tlačítko příliš velký, vystřihne se na obou stranách. Můžete zvolit další možnosti zarovnání, včetně následujících:

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

Na rozdíl od CBitmapButton, který používá čtyři rastrové obrázky na tlačítko, SetBitmap používá pouze jeden rastrový obrázek na tlačítko. Po stisknutí tlačítka se rastrový obrázek zobrazí tak, že se posune dolů a doprava.

Zodpovídáte za vydání rastrového obrázku, až s ním budete hotovi.

Příklad

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

Změní styl tlačítka.

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

Parametry

nStyle
Určuje styl tlačítka.

bRedraw
Určuje, zda má být tlačítko překresleno. Nenulová hodnota překreslí tlačítko. Hodnota 0 nepřekresluje tlačítko. Tlačítko se ve výchozím nastavení překreslí.

Poznámky

GetButtonStyle Pomocí členské funkce načtěte styl tlačítka. Slovo s nízkým pořadím celého stylu tlačítka je styl specifický pro tlačítko.

Příklad

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);

Tlačítko tlačítka::SetCheck

Nastaví nebo obnoví stav zaškrtnutí přepínače nebo zaškrtávacího políčka.

void SetCheck(int nCheck);

Parametry

nCheck
Určuje stav kontroly. Tento parametr může být jeden z následujících:

Hodnota Význam
BST_UNCHECKED Nastavte stav tlačítka na nezaškrtnutou.
BST_CHECKED Nastavte stav tlačítka na zaškrtnutí.
BST_INDETERMINATE Nastavte stav tlačítka tak, aby neurčitý. Tuto hodnotu lze použít pouze v případě, že tlačítko má styl BS_3STATE nebo BS_AUTO3STATE.

Poznámky

Tato členová funkce nemá žádný vliv na tlačítko.

Příklad

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

Voláním této členské funkce přidružíte k tlačítku nový kurzor.

HCURSOR SetCursor(HCURSOR hCursor);

Parametry

hCursor
Úchyt kurzoru.

Návratová hodnota

Úchyt kurzoru, který byl dříve přidružen k tlačítku.

Poznámky

Kurzor se automaticky umístí na tvář tlačítka, která je ve výchozím nastavení na střed. Pokud je kurzor pro tlačítko příliš velký, vystřihne se na obou stranách. Můžete zvolit další možnosti zarovnání, včetně následujících:

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

Na rozdíl od CBitmapButton, který používá čtyři rastrové obrázky na tlačítko, SetCursor používá pouze jeden kurzor na tlačítko. Když je tlačítko stisknuto, zobrazí se kurzor, který se posune dolů a doprava.

Příklad

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

Nastaví rozevírací seznam aktuálního ovládacího prvku rozděleného tlačítka.

BOOL SetDropDownState(BOOL fDropDown);

Parametry

fDropDown
[v] TRUE pro nastavení BST_DROPDOWNPUSHED stavu; jinak NEPRAVDA.

Návratová hodnota

TRUE, pokud tato metoda je úspěšná; jinak NEPRAVDA.

Poznámky

Ovládací prvek rozděleného tlačítka má styl BS_SPLITBUTTON nebo BS_DEFSPLITBUTTON a skládá se z tlačítka a šipky rozevíracího seznamu vpravo. Další informace naleznete v tématu Styly tlačítek. Když uživatel klikne na šipku rozevíracího seznamu, obvykle se nastaví stav rozevíracího seznamu. Tuto metodu použijte k programovému nastavení rozevíracího seznamu ovládacího prvku. Šipka rozevíracího seznamu je nakreslená a označí stav.

Tato metoda odešle BCM_SETDROPDOWNSTATE zprávu, která je popsaná v sadě Windows SDK.

Příklad

První příklad kódu definuje proměnnou , m_splitButtonkterá se používá pro programový přístup k ovládacímu prvku split button. Tato proměnná se používá v následujícím příkladu.

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

Další příklad kódu nastaví stav ovládacího prvku rozděleného tlačítka tak, aby indikoval, že rozevírací šipka je nasdílená.

/* 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);

Tlačítko tlačítka::SetElevationRequired

Nastaví stav aktuálního ovládacího prvku tlačítka na elevation required, který je nezbytný pro zobrazení ikony zabezpečení se zvýšenými oprávněními.

BOOL SetElevationRequired(BOOL fElevationRequired);

Parametry

fElevationRequired
[v] HODNOTA TRUE pro nastavení elevation required stavu, jinak NEPRAVDA.

Návratová hodnota

TRUE, pokud tato metoda je úspěšná; jinak NEPRAVDA.

Poznámky

Pokud k provedení akce vyžaduje tlačítko nebo ovládací prvek propojení příkazů zvýšenou úroveň zabezpečení, nastavte ovládací prvek na elevation required stav. Systém Windows následně zobrazí ikonu štítu Řízení uživatelských účtů (UAC) na ovládacím prvku. Další informace najdete v tématu Řízení uživatelských účtů.

Tato metoda odešle BCM_SETSHIELD zprávu, která je popsaná v sadě Windows SDK.

CButton::SetIcon

Voláním této členské funkce přidružíte k tlačítku novou ikonu.

HICON SetIcon(HICON hIcon);

Parametry

hIcon
Úchyt ikony.

Návratová hodnota

Úchyt ikony, která byla dříve přidružená k tlačítku.

Poznámky

Ikona se automaticky umístí na plochu tlačítka, která je ve výchozím nastavení na střed. Pokud je ikona pro tlačítko příliš velká, vystřihne se na obou stranách. Můžete zvolit další možnosti zarovnání, včetně následujících:

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

Na rozdíl od tlačítka CBitmapButton, který používá čtyři rastrové obrázky na tlačítko, SetIcon používá pouze jednu ikonu na tlačítko. Když je tlačítko stisknuto, zobrazí se ikona, která se posune dolů a doprava.

Příklad

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));

Tlačítko tlačítka::SetImageList

Voláním této metody nastavíte seznam obrázků objektu CButton .

BOOL SetImageList(PBUTTON_IMAGELIST pbuttonImagelist);

Parametry

pbuttonImagelist
Ukazatel na nový seznam obrázků

Návratová hodnota

Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.

Poznámky

Tato členová funkce emuluje funkce BCM_SETIMAGELIST zprávy, jak je popsáno v části Tlačítka sady Windows SDK.

CButton::SetNote

Nastaví text poznámky pro aktuální ovládací prvek odkazu na příkaz.

BOOL SetNote(LPCTSTR lpszNote);

Parametry

lpszNote
[v] Ukazatel na řetězec Unicode, který je nastaven jako text poznámky pro ovládací prvek příkazového odkazu.

Návratová hodnota

TRUE, pokud tato metoda je úspěšná; jinak NEPRAVDA.

Poznámky

Tuto metodu použijte pouze u ovládacích prvků, jejichž styl tlačítka je BS_COMMANDLINK nebo BS_DEFCOMMANDLINK.

Tato metoda odešle BCM_SETNOTE zprávu, která je popsaná v sadě Windows SDK.

Příklad

První příklad kódu definuje proměnnou , m_cmdLinkkterá se používá pro programový přístup k ovládacímu prvku příkazového odkazu. Tato proměnná se používá v následujícím příkladu.

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

Následující příklad kódu nastaví text poznámky pro ovládací prvek odkazu příkazu.

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

CButton::SetSplitGlyph

Přidruží zadaný glyf k aktuálnímu ovládacímu prvku rozděleného tlačítka.

BOOL SetSplitGlyph(TCHAR chGlyph);

Parametry

chGlyph
[v] Znak, který určuje glyf, který se má použít jako šipka rozevíracího seznamu tlačítka rozdělení.

Návratová hodnota

TRUE, pokud tato metoda je úspěšná; jinak NEPRAVDA.

Poznámky

Tuto metodu použijte pouze u ovládacích prvků, které mají styl tlačítka BS_SPLITBUTTON nebo BS_DEFSPLITBUTTON.

Glyph je fyzická reprezentace znaku v určitém písmu. Parametr chGlyph se nepoužívá jako glyf , ale slouží k výběru glyfu ze sady systémově definovaných glyfů. Výchozí šipka rozevíracího seznamu je určena znakem 6 a podobá se znaku Unicode BLACK DOWN-POINTING TRIANGLE (U+25BC).

Tato metoda inicializuje mask člen struktury BUTTON_SPLITINFO příznakem BCSIF_GLYPH a himlGlyph člen s parametrem chGlyph a pak odešle tuto strukturu ve zprávě BCM_GETSPLITINFO , která je popsána v sadě Windows SDK.

CButton::SetSplitImageList

Přidruží seznam obrázků k aktuálnímu ovládacímu prvku rozděleného tlačítka.

BOOL SetSplitImageList(CImageList* pSplitImageList);

Parametry

pSplitImageList
[v] Ukazatel na objekt CImageList pro přiřazení k aktuálnímu ovládacímu prvku split button.

Návratová hodnota

TRUE, pokud tato metoda je úspěšná; jinak NEPRAVDA.

Poznámky

Tuto metodu použijte pouze u ovládacích prvků, jejichž styl tlačítka je BS_SPLITBUTTON nebo BS_DEFSPLITBUTTON.

Tato metoda inicializuje mask člen struktury BUTTON_SPLITINFO příznakem BCSIF_IMAGE a himlGlyph člen s parametrem pSplitImageList a pak odešle tuto strukturu ve zprávě BCM_GETSPLITINFO , která je popsána v sadě Windows SDK.

CButton::SetSplitInfo

Určuje parametry, které určují, jak systém Windows nakreslí aktuální ovládací prvek rozděleného tlačítka.

BOOL SetSplitInfo(PBUTTON_SPLITINFO pInfo);

Parametry

pInfo
[v] Ukazatel na strukturu BUTTON_SPLITINFO , která definuje aktuální ovládací prvek rozděleného tlačítka.

Návratová hodnota

TRUE, pokud tato metoda je úspěšná; jinak NEPRAVDA.

Poznámky

Tuto metodu použijte pouze u ovládacích prvků, jejichž styl tlačítka je BS_SPLITBUTTON nebo BS_DEFSPLITBUTTON.

Tato metoda odešle BCM_SETSPLITINFO zprávu, která je popsaná v sadě Windows SDK.

Příklad

První příklad kódu definuje proměnnou , m_splitButtonkterá se používá pro programový přístup k ovládacímu prvku split button.

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

Další příklad kódu změní glyf, který se používá pro rozevírací šipku s rozděleným tlačítkem. V příkladu se nahradí trojúhelníček směřující nahoru výchozí trojúhelníček směřující dolů. Zobrazený glyf závisí na znaku, který zadáte v himlGlyph členu BUTTON_SPLITINFO struktury. Znak 6 určuje glyf trojúhelníku směřující dolů a trojúhelníček je určen znakem 5. Porovnání najdete v metodě pohodlí 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

Nastaví ohraničující obdélník součásti rozevíracího seznamu aktuálního ovládacího prvku rozděleného tlačítka.

BOOL SetSplitSize(LPSIZE pSize);

Parametry

pSize
[v] Ukazatel na strukturu SIZE , která popisuje ohraničující obdélník.

Návratová hodnota

TRUE, pokud tato metoda je úspěšná; jinak NEPRAVDA.

Poznámky

Tuto metodu použijte pouze u ovládacích prvků, jejichž styl tlačítka je BS_SPLITBUTTON nebo BS_DEFSPLITBUTTON.

Když je ovládací prvek rozděleného tlačítka rozbalený, může zobrazit rozevírací komponentu, například ovládací prvek seznam nebo ovládací prvek pager. Tato metoda určuje velikost ohraničujícího obdélníku, který obsahuje rozevírací součást.

Tato metoda inicializuje mask člen BUTTON_SPLITINFO struktury s příznakem BCSIF_SIZE a size člen s parametrem pSize a pak odešle tuto strukturu ve zprávě BCM_GETSPLITINFO, která je popsána v sadě Windows SDK.

Příklad

První příklad kódu definuje proměnnou , m_splitButtonkterá se používá pro programový přístup k ovládacímu prvku split button. Tato proměnná se používá v následujícím příkladu.

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

Další příklad kódu zdvojnásobí velikost rozevírací šipky rozděleného tlačítka.

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

Nastaví styl aktuálního ovládacího prvku rozděleného tlačítka.

BOOL SetSplitStyle(UINT uSplitStyle);

Parametry

uSplitStyle
[v] Bitové kombinace stylů rozdělených tlačítek. Další informace najdete v uSplitStyle členu struktury BUTTON_SPLITINFO .

Návratová hodnota

TRUE, pokud tato metoda je úspěšná; jinak NEPRAVDA.

Poznámky

Tuto metodu použijte pouze u ovládacích prvků, jejichž styl tlačítka je BS_SPLITBUTTON nebo BS_DEFSPLITBUTTON.

Styly rozdělených tlačítek určují zarovnání, poměr stran a grafický formát, se kterým Systém Windows nakreslí ikonu rozděleného tlačítka. Další informace najdete v uSplitStyle členu struktury BUTTON_SPLITINFO .

Tato metoda inicializuje mask člen struktury BUTTON_SPLITINFO příznakem BCSIF_STYLE a uSplitStyle člen s parametrem uSplitStyle a pak odešle tuto strukturu ve zprávě BCM_GETSPLITINFO , která je popsána v sadě Windows SDK.

Příklad

První příklad kódu definuje proměnnou , m_splitButtonkterá se používá pro programový přístup k ovládacímu prvku split button.

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

V dalším příkladu kódu se nastaví styl rozevírací šipky tlačítka rozdělení. Styl BCSS_ALIGNLEFT zobrazuje šipku na levé straně tlačítka a styl BCSS_STRETCH při změně velikosti tlačítka zachová poměry rozevírací šipky.

/* 
    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

Nastaví, jestli je ovládací prvek tlačítka zvýrazněný nebo ne.

void SetState(BOOL bHighlight);

Parametry

bHighlight
Určuje, jestli se má tlačítko zvýraznit. Nenulová hodnota zvýrazní tlačítko; Hodnota 0 odebere zvýrazňování.

Poznámky

Zvýraznění ovlivňuje vnější ovládací prvek tlačítka. Nemá žádný vliv na stav zaškrtnutí přepínače nebo zaškrtávacího políčka.

Ovládací prvek tlačítka se automaticky zvýrazní, když uživatel klikne a podrží levé tlačítko myši. Zvýraznění se odebere, když uživatel uvolní tlačítko myši.

Příklad

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

Voláním této metody nastavíte textový okraj objektu CButton .

BOOL SetTextMargin(RECT* pmargin);

Parametry

pmargin
Ukazatel na nový textový okraj.

Návratová hodnota

Vrátí hodnotu PRAVDA při úspěchu, NEPRAVDA při selhání.

Poznámky

Tato členová funkce emuluje funkce BCM_SETTEXTMARGIN zprávy, jak je popsáno v části Tlačítka sady Windows SDK.

Viz také

CWnd – třída
Graf hierarchie
CWnd – třída
CComboBox – třída
CEdit – třída
CListBox – třída
CScrollBar – třída
CStatic – třída
CBitmapButton – třída
CDialog – třída