Megosztás a következőn keresztül:


CSplitButton osztály

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.

Az CSplitButton osztály egy osztott gomb vezérlőelemet jelöl. Az osztott gomb vezérlő alapértelmezett viselkedést hajt végre, amikor egy felhasználó a gomb fő részére kattint, és megjelenik egy legördülő menü, amikor a felhasználó a gomb legördülő nyílára kattint.

Szemantika

class CSplitButton : public CButton

Tagok

Nyilvános konstruktorok

Név Description
CSplitButton::CSplitButton Egy CSplitButton objektumot hoz létre.

Nyilvános metódusok

Név Description
CSplitButton::Létrehozás Egy felosztott gomb vezérlőelemet hoz létre a megadott stílusokkal, és csatolja az aktuális CSplitButton objektumhoz.
CSplitButton::SetDropDownMenu Beállítja a legördülő menüt, amely akkor jelenik meg, amikor egy felhasználó az aktuális felosztás gomb vezérlőelem legördülő nyílára kattint.

Védett metódusok

Név Description
CSplitButton::OnDropDown Kezeli a BCN_DROPDOWN értesítést, amelyet a rendszer akkor küld, amikor a felhasználó az aktuális felosztógomb vezérlőelem legördülő nyilat választja.

Megjegyzések

Az CSplitButton osztály a CButton osztályból származik. Az osztott gomb vezérlőelem olyan gombvezérlő, amelynek stílusa BS_SPLITBUTTON. Egyéni menüt jelenít meg, amikor egy felhasználó a legördülő nyílra kattint. További információkért tekintse meg a gombstílusok BS_SPLITBUTTON és BS_DEFSPLITBUTTON stílusát.

Az alábbi ábrán egy lapozóvezérlőt és egy (1) felosztott gombot tartalmazó párbeszédpanel látható. A (2) legördülő nyílra már kattintott, és megjelenik a (3) almenü.

Párbeszédpanel felosztás- és lapozóvezérlővel.

Öröklési hierarchia

CObject

CCmdTarget

CWnd

CButton

CSplitButton

Requirements

Fejléc: afxcmn.h

Ez az osztály Windows Vista és újabb verziókban is támogatott.

Az osztály további követelményeit a Windows Vista gyakori vezérlőinek buildelési követelményei ismertetik.

CSplitButton::Létrehozás

Egy felosztott gomb vezérlőelemet hoz létre a megadott stílusokkal, és csatolja az aktuális CSplitButton objektumhoz.

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

Paraméterek

dwStyle
[in] A vezérlőelemre alkalmazni kívánt stílusok bitenkénti kombinációja (OR). További információ: Gombstílusok.

téglalap
[in] A vezérlő pozícióját és méretét tartalmazó RECT-struktúrára mutató hivatkozás.

pParentWnd
[in] Nem null mutató egy CWnd objektumra, amely a vezérlő szülőablaka.

nID
[in] A vezérlő azonosítója.

Visszaadott érték

IGAZ, ha ez a módszer sikeres; egyéb esetben HAMIS.

CSplitButton::CSplitButton

Egy CSplitButton objektumot hoz létre. A konstruktor paraméterei egy almenüt határoznak meg, amely akkor jelenik meg, ha a felhasználó az osztott gomb vezérlőelem legördülő nyílára kattint.

CSplitButton();

CSplitButton(
    UINT nMenuId,
    UINT nSubMenuId)
CSplitButton(CMenu* pMenu)

Paraméterek

nMenuId
[in] A menüsáv erőforrás-azonosítója.

nSubMenuId
[in] Egy almenü erőforrás-azonosítója.

pMenu
[in] Egy almenüt meghatározó CMenu-objektumra mutató mutató. Az CSplitButton objektum törli az CMenu objektumot és a hozzá tartozó HMENU-t, amikor az objektum kimegy a CSplitButton hatókörből.

Megjegyzések

Használja a CSplitButton::Create metódust egy osztott gomb vezérlőelem létrehozásához és az CSplitButton objektumhoz való csatolásához.

CSplitButton::OnDropDown

Kezeli a BCN_DROPDOWN értesítést, amelyet a rendszer akkor küld, amikor a felhasználó az aktuális felosztógomb vezérlőelem legördülő nyilat választja.

afx_msg void OnDropDown(
    NMHDR* pNMHDR,
    LRESULT* pResult);

Paraméterek

pNMHDR
[in] Mutasson egy NMHDR-struktúrára , amely a BCN_DROPDOWN értesítéssel kapcsolatos információkat tartalmazza.

pResult
[kifelé] (Nincs használatban; a rendszer nem ad vissza értéket.) Az BCN_DROPDOWN értesítés visszaadott értéke.

Megjegyzések

Amikor a felhasználó egy felosztott gomb vezérlőelemen a legördülő nyílra kattint, a rendszer egy BCN_DROPDOWN értesítési üzenetet küld, amelyet a OnDropDown metódus kezel. Az CSplitButton objektum azonban nem továbbítja a BCN_DROPDOWN értesítést az osztott gomb vezérlőt tartalmazó vezérlőnek. Következésképpen a vezérlő nem támogatja az egyéni műveletet az értesítésre válaszul.

A vezérlő által támogatott egyéni művelet implementálásához használjon olyan CButton objektumot, amely BS_SPLITBUTTON stílussal rendelkezik objektum CSplitButton helyett. Ezután implementáljon egy kezelőt az objektum BCN_DROPDOWN értesítéséhez CButton . További információ: Gombstílusok.

Az osztott gomb vezérlő által támogatott egyéni művelet implementálásához használja az üzenetvisszaverést. Saját osztályt származtat az CSplitButton osztályból, és nevezze el, például CMySplitButtonnak. Ezután adja hozzá az alábbi üzenettérképet az alkalmazáshoz a BCN_DROPDOWN értesítés kezeléséhez:

BEGIN_MESSAGE_MAP(CMySplitButton,
    CSplitButton)
    ON_NOTIFY_REFLECT(BCN_DROPDOWN, &CMySplitButton::OnDropDown)
END_MESSAGE_MAP()

CSplitButton::SetDropDownMenu

Beállítja a legördülő menüt, amely akkor jelenik meg, amikor egy felhasználó az aktuális felosztás gomb vezérlőelem legördülő nyílára kattint.

void SetDropDownMenu(
    UINT nMenuId,
    UINT nSubMenuId);

void SetDropDownMenu(CMenu* pMenu);

Paraméterek

nMenuId
[in] A menüsáv erőforrás-azonosítója.

nSubMenuId
[in] Egy almenü erőforrás-azonosítója.

pMenu
[in] Mutasson egy almenüt meghatározó CMenu-objektumra . Az CSplitButton objektum törli az CMenu objektumot és a hozzá tartozó HMENU-t, amikor az objektum kimegy a CSplitButton hatókörből.

Megjegyzések

Az nMenuId paraméter egy menüsávot azonosít, amely a menüsorelemek vízszintes listája. Az nSubMenuId paraméter egy nulla alapú indexszám, amely egy almenüt azonosít, amely az egyes menüsorelemekhez társított menüelemek legördülő listája. Egy tipikus alkalmazásnak például van egy menüje, amely tartalmazza a menüsáv elemeit, a "Fájl", a "Szerkesztés" és a "Súgó" elemet. A "Fájl" menüsorelem tartalmaz egy almenüt, amely tartalmazza a "Megnyitás", a "Bezárás" és a "Kilépés" menüpontot. Amikor a felosztógomb vezérlőelem legördülő nyilat választja, a vezérlő nem a menüsávot, hanem a megadott almenüt jeleníti meg.

Az alábbi ábrán egy lapozóvezérlőt és egy (1) felosztott gombot tartalmazó párbeszédpanel látható. A (2) legördülő nyílra már kattintott, és megjelenik a (3) almenü.

Párbeszédpanel felosztás- és lapozóvezérlővel.

Example

A következő példakód első utasítása a CSplitButton::SetDropDownMenu metódust mutatja be. A menüt a Visual Studio erőforrás-szerkesztőjével hoztuk létre, amely automatikusan elnevezte a menüsáv azonosítóját, IDR_MENU1. Az nSubMenuId paraméter, amely nulla, a menüsáv egyetlen almenüjére hivatkozik.

// Initialize the dropdown menu of the splitbutton control.
m_splitButton.SetDropDownMenu(IDR_MENU1, 0);

// Create the pager control.
BOOL nRet;
CRect rect;
GetClientRect(&rect);
nRet = m_pager.Create(
    (WS_VISIBLE | WS_CHILD | PGS_HORZ),
    CRect(rect.Width() / 4, 5, (rect.Width() * 3) / 4, 55),
    this,
    IDC_PAGER1);

m_pager.GetClientRect(&rect);
nRet = m_button.Create(
    _T("This is a very, very long button. 012345678901234567890"),
    (WS_VISIBLE | WS_CHILD), // Do not use CCS_NORESIZE.
    CRect(0, 0, rect.Width(), 30),
    &m_pager, IDC_BUTTON1);

m_pager.SetChild(m_button.m_hWnd);
m_pager.SetButtonSize(20);
m_pager.SetBorder(1);

Lásd még

CSplitButton osztály
hierarchiadiagram
CButton osztály