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
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_splitButton
která 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_cmdLink
která 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_splitButton
která 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_splitButton
která 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_splitButton
která 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