Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
A Windows gombvezérlők funkcióit biztosítja.
Szemantika
class CButton : public CWnd
Tagok
Nyilvános konstruktorok
| Név | Description |
|---|---|
| CButton::CButton | Egy CButton objektumot hoz létre. |
Nyilvános metódusok
| Név | Description |
|---|---|
| CButton::Létrehozás | Létrehozza a Windows gombvezérlőt, és csatolja az CButton objektumhoz. |
| CButton::D rawItem | Felülbírálás egy tulajdonos által rajzolt CButton objektum rajzolásához. |
| CButton::GetBitmap | Lekéri a SetBitmap-tal korábban beállított bitkép leíróját. |
| CButton::GetButtonStyle | Információt kér le a gombvezérlő stílusáról. |
| CButton::GetCheck | Lekéri egy gombvezérlő ellenőrzési állapotát. |
| CButton::GetCursor | Lekéri a setCursorral korábban beállított kurzorkép fogópontját. |
| CButton::GetIcon | Lekéri a SetIconnal korábban beállított ikon fogópontját. |
| CButton::GetIdealSize | Lekéri a gombvezérlő ideális méretét. |
| CButton::GetImageList | Lekéri a gombvezérlő képlistáját. |
| CButton::GetNote | Lekéri az aktuális parancshivatkozás-vezérlő jegyzetösszetevőjét. |
| CButton::GetNoteLength | Lekéri az aktuális parancshivatkozás vezérlőelem jegyzetszövegének hosszát. |
| CButton::GetSplitGlyph | Lekéri az aktuális felosztási gomb vezérlőjével társított karakterjelet. |
| CButton::GetSplitImageList | Lekéri az aktuális felosztási gomb vezérlőjének képlistáját. |
| CButton::GetSplitInfo | Lekéri az aktuális felosztási gomb vezérlőt meghatározó információkat. |
| CButton::GetSplitSize | Lekéri az aktuális felosztási gomb vezérlőelem legördülő összetevőjének határoló téglalapját. |
| CButton::GetSplitStyle | Lekéri az aktuális felosztási gomb vezérlőelemet meghatározó felosztási gombstílusokat. |
| CButton::GetState | Lekéri egy gombvezérlő ellenőrzési állapotát, kiemelési állapotát és fókuszállapotát. |
| CButton::GetTextMargin | Lekéri a gombvezérlő szövegmargóját. |
| CButton::SetBitmap | Megadja a gombon megjelenítendő bitképet. |
| CButton::SetButtonStyle | Módosítja a gomb stílusát. |
| CButton::SetCheck | Egy gombvezérlő ellenőrzési állapotát állítja be. |
| CButton::SetCursor | A gombon megjelenítendő kurzorképet adja meg. |
| CButton::SetDropDownState | Az aktuális felosztási gomb vezérlőelem legördülő állapotát állítja be. |
| CButton::SetIcon | A gombon megjelenítendő ikont adja meg. |
| CButton::SetImageList | Beállítja a gombvezérlő képlistáját. |
| CButton::SetNote | Beállítja a megjegyzést az aktuális parancshivatkozás-vezérlőn. |
| CButton::SetSplitGlyph | Egy megadott karakterjel társítása az aktuális felosztási gomb vezérlőjével. |
| CButton::SetSplitImageList | Képlistát társít az aktuális felosztási gomb vezérlőelemhez. |
| CButton::SetSplitInfo | Az aktuális felosztási gomb vezérlőt meghatározó információkat adja meg. |
| CButton::SetSplitSize | Beállítja az aktuális felosztási gomb vezérlőelem legördülő összetevőjének határoló téglalapját. |
| CButton::SetSplitStyle | Az aktuális felosztás gomb vezérlőelem stílusának beállítása. |
| CButton::SetState | Gombvezérlő kiemelési állapotát állítja be. |
| CButton::SetTextMargin | Beállítja a gombvezérlő szövegmargóját. |
Megjegyzések
A gombvezérlő egy kis, téglalap alakú gyermekablak, amely be- és kikapcsolható. A gombok önállóan vagy csoportokban is használhatók, és feliratozottak vagy szöveg nélkül is megjeleníthetők. Egy gomb általában megváltozik, amikor a felhasználó rákattint rá.
Jellemző gomb a jelölőnégyzet, a választógomb és a nyomógomb. Az CButton objektumok ezek bármelyikévé válhatnak a Tag létrehozása függvény inicializálásánál megadott gombstílusnak megfelelően.
Emellett a CBitmapButton osztály a CButton szöveg helyett bitképekkel címkézett gombvezérlők létrehozását is támogatja. A CBitmapButton gombok felfelé, lefelé, szűrt és letiltott állapotához külön bitképek tartozhatnak.
Gombvezérlőt párbeszédpanelsablonból vagy közvetlenül a kódból is létrehozhat. Mindkét esetben először hívja meg a konstruktort CButton az CButton objektum létrehozásához, majd hívja meg a Create tagfüggvényt a Windows gombvezérlő létrehozásához és az CButton objektumhoz való csatolásához.
Az építés egy egylépéses folyamat lehet egy osztályban, amely a következőből CButtonszármazik: . Írjon konstruktort a származtatott osztályhoz, és hívja meg Create a konstruktoron belülről.
Ha egy gombvezérlő által a szülőnek küldött Windows-értesítési üzeneteket (általában a CDialogból származó osztályt) szeretné kezelni, minden üzenethez adjon hozzá egy üzenettérkép-bejegyzést és egy üzenetkezelő tagfüggvényt a szülőosztályhoz.
Minden üzenettérkép-bejegyzés a következő formában történik:
ON_Notification(id, memberFxn)
ahol az azonosító az értesítést küldő vezérlő gyermekablak-azonosítóját adja meg, a memberFxn pedig annak a szülőtagfüggvénynek a neve, amelyet az értesítés kezeléséhez írt.
A szülő függvény prototípusa a következő:
afx_msg void memberFxn();
Az üzenettérkép lehetséges bejegyzései a következők:
| Térképbejegyzés | Szülőnek küldve, amikor... |
|---|---|
| ON_BN_CLICKED | A felhasználó egy gombra kattint. |
| ON_BN_DOUBLECLICKED | A felhasználó duplán kattint egy gombra. |
Ha egy párbeszédpanel-erőforrásból hoz létre CButton objektumot, a rendszer automatikusan megsemmisíti az CButton objektumot, amikor a felhasználó bezárja a párbeszédpanelt.
Ha egy objektumot CButton egy ablakban hoz létre, előfordulhat, hogy el kell pusztítania. Ha a függvény használatával hozza létre az CButton objektumot a new halomon, akkor a felhasználó bezárásakor meg kell hívnia delete az objektumot, hogy semmisítse meg. Ha az objektumot CButton a veremen hozza létre, vagy a szülő párbeszédpanel-objektumba van beágyazva, a rendszer automatikusan megsemmisíti.
Öröklési hierarchia
CButton
Requirements
Fejléc: afxwin.h
CButton::CButton
Egy CButton objektumot hoz létre.
CButton();
Example
// Declare a button object.
CButton myButton;
CButton::Létrehozás
Létrehozza a Windows gombvezérlőt, és csatolja az CButton objektumhoz.
virtual BOOL Create(
LPCTSTR lpszCaption,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Paraméterek
lpszCaption
Megadja a gombvezérlő szövegét.
dwStyle
Megadja a gombvezérlő stílusát. A gombstílusok bármilyen kombinációját alkalmazhatja a gombra.
téglalap
Megadja a gombvezérlő méretét és pozícióját.
CRect Lehet objektum vagy RECT struktúra.
pParentWnd
A gombvezérlő szülőablakát adja meg, általában egy CDialog. Nem lehet NULL.
Nid
Megadja a gombvezérlő azonosítóját.
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0.
Megjegyzések
Egy objektumot CButton két lépésben hozhat létre. Először hívja meg a konstruktort, majd hívja meg Create, amely létrehozza a Windows gombvezérlőt, és csatolja az CButton objektumhoz.
Ha a WS_VISIBLE stílus meg van adva, a Windows elküldi a gombvezérlőt az aktiváláshoz és a gomb megjelenítéséhez szükséges összes üzenethez.
Alkalmazza a következő ablakstílusokat egy gombvezérlőre:
WS_CHILD Always
WS_VISIBLE általában
WS_DISABLED ritkán
WS_GROUP Csoportvezérlők
WS_TABSTOP A gomb belefoglalása a lapozási sorrendbe
Example
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
A keretrendszer meghívta, amikor egy tulajdonos által rajzolt gomb vizuális aspektusa megváltozott.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Paraméterek
lpDrawItemStruct
Hosszú mutató egy DRAWITEMSTRUCT-struktúrára . A struktúra információkat tartalmaz a megrajzolandó elemről és a szükséges rajz típusáról.
Megjegyzések
A tulajdonos által rajzolt gomb BS_OWNERDRAW stíluskészlettel rendelkezik. A tagfüggvény felülbírálása a tulajdonos által rajzolt CButton objektumok rajzának implementálásához. Az alkalmazásnak a tagfüggvény leállása előtt vissza kell állítania az lpDrawItemStruct-ben megadott megjelenítési környezethez kiválasztott grafikus eszközillesztő (GDI) objektumokat.
A BS_ stílusértékeket is megtekintheti.
Example
// 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
Hívja meg ezt a tagfüggvényt, hogy lekérje a gombhoz társított, korábban SetBitmap-tal beállított bitkép fogópontját.
HBITMAP GetBitmap() const;
Visszaadott érték
Egy bitképhez tartozó fogópont. NULL érték, ha korábban nem adott meg bitképet.
Example
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
Információt kér le a gombvezérlő stílusáról.
UINT GetButtonStyle() const;
Visszaadott érték
Az objektum gombstílusait CButton adja vissza. Ez a függvény csak a BS_ stílusértékeket adja vissza, a többi ablakstílust nem.
Example
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
Beolvassa a választógomb vagy a jelölőnégyzet állapotát.
int GetCheck() const;
Visszaadott érték
A BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON vagy BS_3STATE stílussal létrehozott gomb vezérlőelem visszatérési értéke az alábbi értékek egyike:
| Érték | Meaning |
|---|---|
| BST_UNCHECKED | A gomb állapota nincs bejelölve. |
| BST_CHECKED | A gomb állapota be van jelölve. |
| BST_INDETERMINATE | A gomb állapota határozatlan (csak akkor érvényes, ha a gomb BS_3STATE vagy BS_AUTO3STATE stílussal rendelkezik). |
Ha a gomb más stílussal rendelkezik, a visszatérési érték BST_UNCHECKED.
Example
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
Hívja meg ezt a tagfüggvényt, hogy lekérje a gombhoz társított, korábban a SetCursorhoz beállított kurzor fogópontját.
HCURSOR GetCursor();
Visszaadott érték
A kurzor képének fogópontja. NULL érték, ha nincs korábban megadva kurzor.
Example
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
Hívja meg ezt a tagfüggvényt, hogy lekérje a gombhoz társított, korábban SetIconnal beállított ikon fogópontját.
HICON GetIcon() const;
Visszaadott érték
Egy ikon fogópontja. NULL érték, ha korábban nincs megadva ikon.
Example
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
Lekéri a gombvezérlő ideális méretét.
BOOL GetIdealSize(SIZE* psize);
Paraméterek
Psize
A gomb aktuális méretére mutató mutató.
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0.
Megjegyzések
Ez a tagfüggvény a Windows SDK Gombok szakaszában leírtak szerint emulálja az BCM_GETIDEALSIZE üzenet funkcióit.
CButton::GetImageList
Hívja meg ezt a metódust, hogy lekérje a képlistát a gombvezérlőből.
BOOL GetImageList(PBUTTON_IMAGELIST pbuttonImagelist);
Paraméterek
pbuttonImagelist
Az objektum képlistájára CButton mutató mutató.
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0.
Megjegyzések
Ez a tagfüggvény a Windows SDK Gombok szakaszában leírtak szerint emulálja az BCM_GETIMAGELIST üzenet funkcióit.
CButton::GetNote
Lekéri az aktuális parancshivatkozás-vezérlőhöz társított jegyzetszöveget.
CString GetNote() const;
BOOL GetNote(
LPTSTR lpszNote,
UINT* cchNote) const;
Paraméterek
lpszNote
[kifelé] Mutasson egy pufferre, amely kiosztásáért és felszabadításáért a hívó felelős. Ha a visszatérési érték IGAZ, a puffer tartalmazza az aktuális parancshivatkozás-vezérlőhöz társított jegyzetszöveget; ellenkező esetben a puffer nem változik.
cchNote
[be, ki] Mutató egy aláíratlan egész szám változóra. A metódus meghívásakor a változó az lpszNote paraméter által megadott puffer méretét tartalmazza. Ha a metódus eredménye igaz, a változó az aktuális parancshivatkozás-vezérlőhöz társított jegyzet méretét tartalmazza. Ha a visszatérési érték HAMIS, a változó tartalmazza a megjegyzéshez szükséges pufferméretet.
Visszaadott érték
Az első túlterhelés során egy CString objektum, amely az aktuális parancshivatkozás-vezérlőhöz társított jegyzetszöveget tartalmazza.
-vagy-
A második túlterhelés esetén IGAZ, ha ez a módszer sikeres; egyéb esetben HAMIS.
Megjegyzések
Ezt a módszert csak olyan vezérlőkkel használja, amelyek gombstílusa BS_COMMANDLINK vagy BS_DEFCOMMANDLINK.
Ez a metódus elküldi a Windows SDK-ban leírt BCM_GETNOTE üzenetet.
CButton::GetNoteLength
Lekéri az aktuális parancshivatkozás vezérlőelem jegyzetszövegének hosszát.
UINT GetNoteLength() const;
Visszaadott érték
Az aktuális parancshivatkozás vezérlőelem jegyzetszövegének hossza 16 bites Unicode-karakterekkel.
Megjegyzések
Ezt a módszert csak olyan vezérlőkkel használja, amelyek gombstílusa BS_COMMANDLINK vagy BS_DEFCOMMANDLINK.
Ez a metódus elküldi a Windows SDK-ban leírt BCM_GETNOTELENGTH üzenetet.
CButton::GetSplitGlyph
Lekéri az aktuális felosztási gomb vezérlőjével társított karakterjelet.
TCHAR GetSplitGlyph() const;
Visszaadott érték
Az aktuális felosztási gomb vezérlőelemhez társított karakter karakter.
Megjegyzések
A karakterjel egy karakter fizikai ábrázolása egy adott betűtípusban. Előfordulhat például, hogy egy felosztott gomb vezérlőelemet a Unicode pipa karakterének (U+2713) karaktere díszít.
Ezt a módszert csak olyan vezérlőkkel használja, amelyek gombstílusa BS_SPLITBUTTON vagy BS_DEFSPLITBUTTON.
Ez a módszer inicializálja egy maskBUTTON_SPLITINFO struktúra tagját a BCSIF_GLYPH jelzővel, majd elküldi ezt a struktúrát a Windows SDK-ban leírt BCM_GETSPLITINFO üzenetben. Amikor az üzenetfüggvény visszatér, ez a metódus lekéri a karakterjelet a himlGlyph struktúra tagjától.
CButton::GetSplitImageList
Lekéri az aktuális felosztási gomb vezérlőjének képlistáját .
CImageList* GetSplitImageList() const;
Visszaadott érték
Mutató egy CImageList-objektumra .
Megjegyzések
Ezt a módszert csak olyan vezérlőkkel használja, amelyek gombstílusa BS_SPLITBUTTON vagy BS_DEFSPLITBUTTON.
Ez a módszer inicializálja egy maskBUTTON_SPLITINFO struktúra tagját a BCSIF_IMAGE jelzővel, majd elküldi ezt a struktúrát a Windows SDK-ban leírt BCM_GETSPLITINFO üzenetben. Amikor az üzenetfüggvény visszatér, ez a metódus lekéri a képlistát a himlGlyph struktúra tagjától.
CButton::GetSplitInfo
Lekéri azokat a paramétereket, amelyek meghatározzák, hogy a Windows hogyan rajzolja meg az aktuális felosztási gomb vezérlőt.
BOOL GetSplitInfo(PBUTTON_SPLITINFO pInfo) const;
Paraméterek
pInfo
[kifelé] Mutasson egy BUTTON_SPLITINFO szerkezetre, amely információkat kap az aktuális felosztási gomb vezérlőről. A hívó felelős a struktúra kiosztásáért.
Visszaadott érték
IGAZ, ha ez a módszer sikeres; egyéb esetben HAMIS.
Megjegyzések
Ezt a módszert csak olyan vezérlőkkel használja, amelyek gombstílusa BS_SPLITBUTTON vagy BS_DEFSPLITBUTTON.
Ez a metódus elküldi a Windows SDK-ban leírt BCM_GETSPLITINFO üzenetet.
CButton::GetSplitSize
Lekéri az aktuális felosztási gomb vezérlőelem legördülő összetevőjének határoló téglalapját.
BOOL GetSplitSize(LPSIZE pSize) const;
Paraméterek
Psize
[kifelé] Mutasson egy size szerkezetre, amely megkapja egy téglalap leírását.
Visszaadott érték
IGAZ, ha ez a módszer sikeres; egyéb esetben HAMIS.
Megjegyzések
Ezt a módszert csak olyan vezérlőkkel használja, amelyek gombstílusa BS_SPLITBUTTON vagy BS_DEFSPLITBUTTON.
Ha az osztott gomb vezérlőelem ki van bontva, megjeleníthet egy legördülő összetevőt, például egy listavezérlőt vagy egy lapozóvezérlőt. Ez a metódus lekéri a legördülő összetevőt tartalmazó határoló téglalapot.
Ez a módszer inicializálja egy maskBUTTON_SPLITINFO struktúra tagját a BCSIF_SIZE jelzővel, majd elküldi ezt a struktúrát a Windows SDK-ban leírt BCM_GETSPLITINFO üzenetben. Az üzenetfüggvény visszatérésekor ez a metódus lekéri a határoló téglalapot a size szerkezet tagjától.
CButton::GetSplitStyle
Lekéri az aktuális felosztási gomb vezérlőelemet meghatározó felosztási gombstílusokat.
UINT GetSplitStyle() const;
Visszaadott érték
Az osztott gombstílusok bitenkénti kombinációja. További információkért lásd a uSplitStyleBUTTON_SPLITINFO struktúrájának tagját.
Megjegyzések
Ezt a módszert csak olyan vezérlőkkel használja, amelyek gombstílusa BS_SPLITBUTTON vagy BS_DEFSPLITBUTTON.
Az osztott gombstílusok határozzák meg az igazítást, a méretarányt és a grafikus formátumot, amellyel a Windows felosztógomb ikont rajzol.
Ez a módszer inicializálja egy maskBUTTON_SPLITINFO struktúra tagját a BCSIF_STYLE jelzővel, majd elküldi ezt a struktúrát a Windows SDK-ban leírt BCM_GETSPLITINFO üzenetben. Amikor az üzenetfüggvény visszatér, ez a metódus lekéri a felosztott gombstílusokat a uSplitStyle struktúra tagjától.
CButton::GetState
Egy gombvezérlő állapotát kéri le.
UINT GetState() const;
Visszaadott érték
Bitmező, amely egy gombvezérlő aktuális állapotát jelző értékek kombinációját tartalmazza. Az alábbi táblázat a lehetséges értékeket sorolja fel.
| Gomb állapota | Érték | Description |
|---|---|---|
| BST_UNCHECKED | 0x0000 | A kezdeti állapot. |
| BST_CHECKED | 0x0001 | A gombvezérlő be van jelölve. |
| BST_INDETERMINATE | 0x0002 | Az állapot határozatlan (csak akkor lehetséges, ha a gombvezérlő három állapottal rendelkezik). |
| BST_PUSHED | 0x0004 | A gombvezérlő lenyomva van. |
| BST_FOCUS | 0x0008 | A gombvezérlő a fókuszban van. |
Megjegyzések
A BS_3STATE vagy BS_AUTO3STATE gombstílussal rendelkező gombvezérlők olyan jelölőnégyzetet hoznak létre, amely egy harmadik, határozatlan állapotú állapottal rendelkezik. A határozatlan állapot azt jelzi, hogy a jelölőnégyzet nincs bejelölve és nincs bejelölve.
Example
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
Hívja meg ezt a metódust az objektum szövegmargójának lekéréséhez CButton .
BOOL GetTextMargin(RECT* pmargin);
Paraméterek
pmargin
Az objektum szövegmargójára CButton mutató mutató.
Visszaadott érték
A szöveges margót adja vissza. Nonzero, ha sikeres; egyéb esetben 0.
Megjegyzések
Ez a tagfüggvény a BCM_GETTEXTMARGIN üzenet funkcióit emulálja a Windows SDK Gombok szakaszában leírtak szerint.
CButton::SetBitmap
Hívja meg ezt a tagfüggvényt, hogy új bitképet rendeljen a gombhoz.
HBITMAP SetBitmap(HBITMAP hBitmap);
Paraméterek
hBitmap
Egy bitkép fogópontja.
Visszaadott érték
A gombhoz korábban társított bitkép fogópontja.
Megjegyzések
A bitkép automatikusan a gomb oldalára kerül, alapértelmezés szerint középre igazítva. Ha a bitkép túl nagy a gombhoz, mindkét oldalon ki lesz vágva. Más igazítási lehetőségeket is választhat, például a következőket:
BS_TOP
BS_LEFT
BS_RIGHT
BS_CENTER
BS_BOTTOM
BS_VCENTER
Ellentétben a CBitmapButtonnal, amely gombonként négy bitképet használ, SetBitmap a gombonként csak egy bitképet használ. A gomb megnyomásakor a bitkép lefelé és jobbra vált.
A bitkép kiadásáért ön felelős, ha elkészült vele.
Example
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
Módosítja a gomb stílusát.
void SetButtonStyle(
UINT nStyle,
BOOL bRedraw = TRUE);
Paraméterek
nStyle
Megadja a gombstílust.
bRedraw
Megadja, hogy a gombot újra kell-e helyezni. Egy nemero érték újrarajzolva a gombot. A 0 érték nem vonta újra a gombot. A gomb alapértelmezés szerint újrarajzolt.
Megjegyzések
A gombstílus lekéréséhez használja a GetButtonStyle tagfüggvényt. A teljes gombstílus alacsonyrendű szava a gombspecifikus stílus.
Example
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
Beállítja vagy alaphelyzetbe állítja a választógomb vagy a jelölőnégyzet állapotát.
void SetCheck(int nCheck);
Paraméterek
nCheck
Megadja az ellenőrzési állapotot. Ez a paraméter a következők egyike lehet:
| Érték | Meaning |
|---|---|
| BST_UNCHECKED | Állítsa a gomb állapotát bejelöletlenre. |
| BST_CHECKED | Állítsa be a gomb állapotát bejelölve. |
| BST_INDETERMINATE | Állítsa a gomb állapotát határozatlan értékre. Ez az érték csak akkor használható, ha a gomb BS_3STATE vagy BS_AUTO3STATE stílussal rendelkezik. |
Megjegyzések
Ez a tagfüggvény nincs hatással a nyomógombokra.
Example
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
Hívja meg ezt a tagfüggvényt, hogy új kurzort rendeljen a gombhoz.
HCURSOR SetCursor(HCURSOR hCursor);
Paraméterek
hCursor
A kurzor fogópontja.
Visszaadott érték
A gombhoz korábban társított kurzor fogópontja.
Megjegyzések
A kurzor automatikusan a gomb oldalára kerül, alapértelmezés szerint középre igazítva. Ha a kurzor túl nagy a gombhoz, mindkét oldalon ki lesz vágva. Más igazítási lehetőségeket is választhat, például a következőket:
BS_TOP
BS_LEFT
BS_RIGHT
BS_CENTER
BS_BOTTOM
BS_VCENTER
Ellentétben a CBitmapButtonnal, amely gombonként négy bitképet használ, SetCursor a gombonként csak egy kurzort használ. Ha a gombot lenyomja, a kurzor lefelé és jobbra fog elmozdulni.
Example
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
Az aktuális felosztási gomb vezérlőelem legördülő állapotát állítja be.
BOOL SetDropDownState(BOOL fDropDown);
Paraméterek
fDropDown
[in] IGAZ a BST_DROPDOWNPUSHED állapot beállításához; egyéb esetben HAMIS.
Visszaadott érték
IGAZ, ha ez a módszer sikeres; egyéb esetben HAMIS.
Megjegyzések
Az osztott gomb vezérlőelemek stílusa BS_SPLITBUTTON vagy BS_DEFSPLITBUTTON, és egy gombból és egy lefelé mutató nyílból áll jobbra. További információ: Gombstílusok. A legördülő állapot általában akkor van beállítva, amikor a felhasználó a legördülő nyílra kattint. Ezzel a módszerrel programozott módon állíthatja be a vezérlőelem legördülő állapotát. A legördülő nyíl árnyékolva jelzi az állapotot.
Ez a metódus elküldi a Windows SDK-ban leírt BCM_SETDROPDOWNSTATE üzenetet.
Example
Az első példakód azt a változót határozza meg, m_splitButtonamely programozott módon érhető el az osztott gomb vezérlőelemhez. Ezt a változót a következő példában használjuk.
public:
// Variable to access programmatically defined command link control.
CButton m_cmdLink;
// Variable to access programmatically defined split button control.
CButton m_splitButton;
A következő példakód az osztott gomb vezérlőelem állapotát állítja be, hogy jelezze a legördülő nyíl leküldését.
/* 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
Az aktuális gombvezérlő elevation requiredállapotát állítja be, amely ahhoz szükséges, hogy a vezérlő emelt szintű biztonsági ikont jelenítsen meg.
BOOL SetElevationRequired(BOOL fElevationRequired);
Paraméterek
fElevationRequired
[in] IGAZ az állapot beállításához elevation required ; ellenkező esetben HAMIS.
Visszaadott érték
IGAZ, ha ez a módszer sikeres; egyéb esetben HAMIS.
Megjegyzések
Ha egy gomb- vagy parancshivatkozás-vezérlő emelt szintű biztonsági engedélyt igényel egy művelet végrehajtásához, állítsa a vezérlőt állapotra elevation required . Ezt követően a Windows megjeleníti a felhasználói fiókok felügyelete (UAC) pajzs ikonját a vezérlőn. További információ: Felhasználói fiókok felügyelete.
Ez a metódus elküldi a Windows SDK-ban leírt BCM_SETSHIELD üzenetet.
CButton::SetIcon
A tagfüggvény meghívásával társíthat egy új ikont a gombhoz.
HICON SetIcon(HICON hIcon);
Paraméterek
hIcon
Egy ikon fogópontja.
Visszaadott érték
A gombhoz korábban társított ikon fogópontja.
Megjegyzések
Az ikon automatikusan a gomb oldalára kerül, alapértelmezés szerint középre igazítva. Ha az ikon túl nagy a gombhoz, mindkét oldalon ki lesz vágva. Más igazítási lehetőségeket is választhat, például a következőket:
BS_TOP
BS_LEFT
BS_RIGHT
BS_CENTER
BS_BOTTOM
BS_VCENTER
Ellentétben a CBitmapButtonnal, amely gombonként négy bitképet használ, SetIcon a gombonként csak egy ikont használ. A gomb megnyomásakor az ikon lefelé és jobbra vált.
Example
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
Hívja meg ezt a metódust az objektum képlistájának beállításához CButton .
BOOL SetImageList(PBUTTON_IMAGELIST pbuttonImagelist);
Paraméterek
pbuttonImagelist
Mutató az új képlistára.
Visszaadott érték
True (IGAZ) értéket ad vissza a sikerhez, hamis a sikertelenséghez.
Megjegyzések
Ez a tagfüggvény a Windows SDK Gombok szakaszában leírtak szerint emulálja az BCM_SETIMAGELIST üzenet funkcióit.
CButton::SetNote
Beállítja az aktuális parancshivatkozás-vezérlő jegyzetszövegét.
BOOL SetNote(LPCTSTR lpszNote);
Paraméterek
lpszNote
[in] Mutasson egy Unicode-sztringre, amely a parancshivatkozás-vezérlő jegyzetszövegeként van beállítva.
Visszaadott érték
IGAZ, ha ez a módszer sikeres; egyéb esetben HAMIS.
Megjegyzések
Ezt a módszert csak olyan vezérlőkkel használja, amelyek gombstílusa BS_COMMANDLINK vagy BS_DEFCOMMANDLINK.
Ez a metódus elküldi a Windows SDK-ban leírt BCM_SETNOTE üzenetet.
Example
Az első példakód határozza meg azt a változót, m_cmdLinkamely a parancshivatkozás-vezérlő programozott elérésére szolgál. Ezt a változót a következő példában használjuk.
public:
// Variable to access programmatically defined command link control.
CButton m_cmdLink;
// Variable to access programmatically defined split button control.
CButton m_splitButton;
A következő példakód beállítja a parancshivatkozás-vezérlő jegyzetszövegét.
// Set the command link text.
m_cmdLink.SetNote(_T("This is the command link note."));
CButton::SetSplitGlyph
Egy megadott karakterjel társítása az aktuális felosztási gomb vezérlőjével.
BOOL SetSplitGlyph(TCHAR chGlyph);
Paraméterek
chGlyph
[in] Egy karakter, amely megadja a felosztás gomb legördülő nyílként használni kívánt karaktert.
Visszaadott érték
IGAZ, ha ez a módszer sikeres; egyéb esetben HAMIS.
Megjegyzések
Ezt a módszert csak a gombstílussal BS_SPLITBUTTON vagy BS_DEFSPLITBUTTON vezérlőkkel használhatja.
A karakterjel egy karakter fizikai ábrázolása egy adott betűtípusban. A chGlyph paraméter nem a karakterjel, hanem a rendszer által definiált karakterjelek halmazából való kiválasztására szolgál. Az alapértelmezett legördülő nyíl karaktert egy "6" karakter adja meg, és a BLACK DOWN-POINTING TRIANGLE (U+25BC) Unicode karakterhez hasonlít.
Ez a módszer inicializálja egy mask BUTTON_SPLITINFO-struktúra tagját a BCSIF_GLYPH jelzővel és a himlGlyphchGlyph paraméterrel, majd elküldi ezt a struktúrát a Windows SDK-ban leírt BCM_GETSPLITINFO üzenetben.
CButton::SetSplitImageList
Képlistát társít az aktuális felosztási gomb vezérlőelemhez.
BOOL SetSplitImageList(CImageList* pSplitImageList);
Paraméterek
pSplitImageList
[in] Mutasson egy CImageList objektumra, amely az aktuális felosztási gomb vezérlőelemhez rendelhető.
Visszaadott érték
IGAZ, ha ez a módszer sikeres; egyéb esetben HAMIS.
Megjegyzések
Ezt a módszert csak olyan vezérlőkkel használja, amelyek gombstílusa BS_SPLITBUTTON vagy BS_DEFSPLITBUTTON.
Ez a módszer inicializálja egy maskBUTTON_SPLITINFO struktúra tagját a BCSIF_IMAGE jelzővel és a himlGlyphpSplitImageList paraméterrel, majd elküldi ezt a struktúrát a Windows SDK-ban leírt BCM_GETSPLITINFO üzenetben.
CButton::SetSplitInfo
Megadja azokat a paramétereket, amelyek meghatározzák, hogy a Windows hogyan rajzolja meg az aktuális felosztási gomb vezérlőt.
BOOL SetSplitInfo(PBUTTON_SPLITINFO pInfo);
Paraméterek
pInfo
[in] Mutasson egy BUTTON_SPLITINFO szerkezetre, amely meghatározza az aktuális felosztási gomb vezérlőt.
Visszaadott érték
IGAZ, ha ez a módszer sikeres; egyéb esetben HAMIS.
Megjegyzések
Ezt a módszert csak olyan vezérlőkkel használja, amelyek gombstílusa BS_SPLITBUTTON vagy BS_DEFSPLITBUTTON.
Ez a metódus elküldi a Windows SDK-ban leírt BCM_SETSPLITINFO üzenetet.
Example
Az első példakód azt a változót határozza meg, m_splitButtonamely programozott módon érhető el az osztott gomb vezérlőelemhez.
public:
// Variable to access programmatically defined command link control.
CButton m_cmdLink;
// Variable to access programmatically defined split button control.
CButton m_splitButton;
A következő példakód módosítja az osztott gomb legördülő nyílhoz használt karakterjelet. A példa egy felfelé mutató háromszögjelet helyettesít az alapértelmezett lefelé mutató háromszög-karakterjelre. A megjelenített karakterjel a struktúra tagjában himlGlyphBUTTON_SPLITINFO megadott karaktertől függ. A lefelé mutató háromszög karaktert egy "6" karakter adja meg, a felfelé mutató háromszöget pedig egy "5" karakter adja meg. Összehasonlításhoz tekintse meg a CButton::SetSplitGlyph nevű kényelmi módszert.
/*
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
Beállítja az aktuális felosztási gomb vezérlőelem legördülő összetevőjének határoló téglalapját.
BOOL SetSplitSize(LPSIZE pSize);
Paraméterek
Psize
[in] Mutató egy határoló téglalapot leíró SIZE szerkezetre.
Visszaadott érték
IGAZ, ha ez a módszer sikeres; egyéb esetben HAMIS.
Megjegyzések
Ezt a módszert csak olyan vezérlőkkel használja, amelyek gombstílusa BS_SPLITBUTTON vagy BS_DEFSPLITBUTTON.
Ha az osztott gomb vezérlőelem ki van bontva, megjeleníthet egy legördülő összetevőt, például egy listavezérlőt vagy egy lapozóvezérlőt. Ez a metódus a legördülő összetevőt tartalmazó határoló téglalap méretét adja meg.
Ez a módszer inicializálja egy maskBUTTON_SPLITINFO struktúra tagját a BCSIF_SIZE jelzővel és a sizepSize paraméterrel rendelkező taggal, majd elküldi ezt a struktúrát a Windows SDK-ban leírt BCM_GETSPLITINFO üzenetben.
Example
Az első példakód azt a változót határozza meg, m_splitButtonamely programozott módon érhető el az osztott gomb vezérlőelemhez. Ezt a változót a következő példában használjuk.
public:
// Variable to access programmatically defined command link control.
CButton m_cmdLink;
// Variable to access programmatically defined split button control.
CButton m_splitButton;
A következő példakód megduplázza az osztott gomb legördülő nyíl méretét.
// 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
Az aktuális felosztás gomb vezérlőelem stílusának beállítása.
BOOL SetSplitStyle(UINT uSplitStyle);
Paraméterek
uSplitStyle
[in] Az osztott gombstílusok bitenkénti kombinációja. További információkért lásd a uSplitStyleBUTTON_SPLITINFO struktúrájának tagját.
Visszaadott érték
IGAZ, ha ez a módszer sikeres; egyéb esetben HAMIS.
Megjegyzések
Ezt a módszert csak olyan vezérlőkkel használja, amelyek gombstílusa BS_SPLITBUTTON vagy BS_DEFSPLITBUTTON.
Az osztott gombstílusok határozzák meg az igazítást, a méretarányt és a grafikus formátumot, amellyel a Windows felosztógomb ikont rajzol. További információkért lásd a uSplitStyleBUTTON_SPLITINFO struktúrájának tagját.
Ez a módszer inicializálja egy maskBUTTON_SPLITINFO struktúra tagját a BCSIF_STYLE jelzővel és a uSplitStyle taggal az uSplitStyle paraméterrel, majd elküldi ezt a struktúrát a Windows SDK-ban leírt BCM_GETSPLITINFO üzenetben.
Example
Az első példakód azt a változót határozza meg, m_splitButtonamely programozott módon érhető el az osztott gomb vezérlőelemhez.
public:
// Variable to access programmatically defined command link control.
CButton m_cmdLink;
// Variable to access programmatically defined split button control.
CButton m_splitButton;
A következő példakód az osztott gomb legördülő nyíl stílusát állítja be. A BCSS_ALIGNLEFT stílus a gomb bal oldalán lévő nyíllal jelenik meg, a BCSS_STRETCH stílus pedig megőrzi a legördülő nyíl arányait a gomb átméretezésekor.
/*
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
Beállítja, hogy egy gombvezérlő ki van-e emelve vagy sem.
void SetState(BOOL bHighlight);
Paraméterek
bHighlight
Megadja, hogy a gomb kiemelve legyen-e. A nemero érték kiemeli a gombot; a 0 érték eltávolítja a kiemeléseket.
Megjegyzések
A kiemelés hatással van a gombvezérlő külső felületére. Nincs hatással a választógomb vagy a jelölőnégyzet állapotára.
A gombvezérlő automatikusan ki van emelve, amikor a felhasználó rákattint, és a bal egérgombot tartja. A kiemelés akkor törlődik, ha a felhasználó felengedi az egérgombot.
Example
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
Hívja meg ezt a metódust az objektum szövegmargójának beállításához CButton .
BOOL SetTextMargin(RECT* pmargin);
Paraméterek
pmargin
Az új szöveg margójára mutató mutató.
Visszaadott érték
True (IGAZ) értéket ad vissza a sikerhez, hamis a sikertelenséghez.
Megjegyzések
Ez a tagfüggvény a Windows SDK Gombok szakaszában leírtak szerint emulálja az BCM_SETTEXTMARGIN üzenet funkcióit.
Lásd még
CWnd osztály
hierarchiadiagram
CWnd osztály
CComboBox osztály
CEdit osztály
CListBox osztály
CScrollBar osztály
CStatic osztály
CBitmapButton osztály
CDialog osztály