Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
De CSplitButton klasse vertegenwoordigt een besturingselement voor gesplitste knoppen. Het besturingselement splitsknop voert een standaardgedrag uit wanneer een gebruiker op het hoofdgedeelte van de knop klikt en een vervolgkeuzelijst weergeeft wanneer een gebruiker op de vervolgkeuzepijl van de knop klikt.
Syntaxis
class CSplitButton : public CButton
Leden
Openbare constructors
| Naam | Description |
|---|---|
| CSplitButton::CSplitButton | Maakt een CSplitButton object. |
Openbare methoden
| Naam | Description |
|---|---|
| CSplitButton::Maken | Hiermee maakt u een besturingselement voor gesplitste knoppen met opgegeven stijlen en koppelt u het aan het huidige CSplitButton object. |
| CSplitButton::SetDropDownMenu | Hiermee stelt u de vervolgkeuzelijst in die wordt weergegeven wanneer een gebruiker op de vervolgkeuzepijl van het huidige besturingselement voor gesplitste knoppen klikt. |
Beveiligde methoden
| Naam | Description |
|---|---|
| CSplitButton::OnDropDown | Hiermee wordt de BCN_DROPDOWN melding verwerkt die het systeem verzendt wanneer een gebruiker op de vervolgkeuzepijl van het huidige besturingselement voor gesplitste knoppen klikt. |
Opmerkingen
De CSplitButton klasse is afgeleid van de klasse CButton . Het besturingselement splitsknop is een knop besturingselement waarvan de stijl BS_SPLITBUTTON. Er wordt een aangepast menu weergegeven wanneer een gebruiker op de vervolgkeuzepijl klikt. Zie de stijlen BS_SPLITBUTTON en BS_DEFSPLITBUTTON in knopstijlen voor meer informatie.
In de volgende afbeelding ziet u een dialoogvenster met een pager-besturingselement en een (1) gesplitst knop besturingselement. De vervolgkeuzepijl (2) is al geklikt en het submenu (3) wordt weergegeven.
Overnamehiƫrarchie
CSplitButton
Requirements
Koptekst: afxcmn.h
Deze klasse wordt ondersteund in Windows Vista en hoger.
Aanvullende vereisten voor deze klasse worden beschreven in buildvereisten voor algemene besturingselementen voor Windows Vista.
CSplitButton::Maken
Hiermee maakt u een besturingselement voor gesplitste knoppen met opgegeven stijlen en koppelt u het aan het huidige CSplitButton object.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parameterwaarden
dwStyle
[in] Een bitwise combinatie (OR) van stijlen die op het besturingselement moeten worden toegepast. Zie Knopstijlen voor meer informatie.
Rect
[in] Een verwijzing naar een RECT-structuur die de positie en grootte van het besturingselement bevat.
pParentWnd
[in] Een niet-null-aanwijzer naar een CWnd-object dat het bovenliggende venster van het besturingselement is.
nID
[in] De id van het besturingselement.
Retourwaarde
WAAR als deze methode is geslaagd; anders, ONWAAR.
CSplitButton::CSplitButton
Maakt een CSplitButton object. De parameters van de constructor geven een submenu op dat wordt weergegeven wanneer een gebruiker op de vervolgkeuzepijl van het besturingselement splitsknop klikt.
CSplitButton();
CSplitButton(
UINT nMenuId,
UINT nSubMenuId)
CSplitButton(CMenu* pMenu)
Parameterwaarden
nMenuId
[in] De resource-id van de menubalk.
nSubMenuId
[in] De resource-id van een submenu.
pMenu
[in] Een aanwijzer naar een CMenu-object dat een submenu aangeeft. Het CSplitButton object verwijdert het CMenu object en het bijbehorende HMENU wanneer het CSplitButton object buiten het bereik valt.
Opmerkingen
Gebruik de methode CSplitButton::Create om een besturingselement voor splitsknoppen te maken en deze aan het CSplitButton object te koppelen.
CSplitButton::OnDropDown
Hiermee wordt de BCN_DROPDOWN melding verwerkt die het systeem verzendt wanneer een gebruiker op de vervolgkeuzepijl van het huidige besturingselement voor gesplitste knoppen klikt.
afx_msg void OnDropDown(
NMHDR* pNMHDR,
LRESULT* pResult);
Parameterwaarden
pNMHDR
[in] Wijs een NMHDR-structuur aan met informatie over de BCN_DROPDOWN melding.
pResult
[uit] (Niet gebruikt; er wordt geen waarde geretourneerd.) Retourwaarde van de melding BCN_DROPDOWN .
Opmerkingen
Wanneer de gebruiker op de vervolgkeuzepijl op een besturingselement voor gesplitste knoppen klikt, verzendt het systeem een BCN_DROPDOWN meldingsbericht dat door de OnDropDown methode wordt verwerkt. Het CSplitButton object stuurt de melding BCN_DROPDOWN echter niet door naar het besturingselement met het besturingselement splitsknop. Het besturingselement met de inhoud kan daarom geen aangepaste actie ondersteunen als reactie op de melding.
Als u een aangepaste actie wilt implementeren die door het besturingselement wordt ondersteund, gebruikt u een CButton-object met een stijl van BS_SPLITBUTTON in plaats van een CSplitButton object. Implementeer vervolgens een handler voor de BCN_DROPDOWN melding in het CButton object. Zie Knopstijlen voor meer informatie.
Als u een aangepaste actie wilt implementeren die door het besturingselement voor de splitsknop zelf wordt ondersteund, gebruikt u berichtspiegeling. Leid uw eigen klas af van de CSplitButton klas en geef deze een naam, bijvoorbeeld CMySplitButton. Voeg vervolgens de volgende berichttoewijzing toe aan uw toepassing om de BCN_DROPDOWN melding te verwerken:
BEGIN_MESSAGE_MAP(CMySplitButton,
CSplitButton)
ON_NOTIFY_REFLECT(BCN_DROPDOWN, &CMySplitButton::OnDropDown)
END_MESSAGE_MAP()
CSplitButton::SetDropDownMenu
Hiermee stelt u de vervolgkeuzelijst in die wordt weergegeven wanneer een gebruiker op de vervolgkeuzepijl van het huidige besturingselement voor gesplitste knoppen klikt.
void SetDropDownMenu(
UINT nMenuId,
UINT nSubMenuId);
void SetDropDownMenu(CMenu* pMenu);
Parameterwaarden
nMenuId
[in] De resource-id van de menubalk.
nSubMenuId
[in] De resource-id van een submenu.
pMenu
[in] Aanwijzer naar een CMenu-object dat een submenu aangeeft. Het CSplitButton object verwijdert het CMenu object en het bijbehorende HMENU wanneer het CSplitButton object buiten het bereik valt.
Opmerkingen
De parameter nMenuId identificeert een menubalk, een horizontale lijst met menubalkitems. De parameter nSubMenuId is een op nul gebaseerd indexnummer dat een submenu identificeert. Dit is de vervolgkeuzelijst met menu-items die aan elk menubalkitem zijn gekoppeld. Een typische toepassing bevat bijvoorbeeld een menu met de menubalkitems' 'Bestand', 'Bewerken' en 'Help'. Het menubalk-item Bestand bevat een submenu met de menu-items 'Openen', 'Sluiten' en 'Afsluiten'. Wanneer op de vervolgkeuzepijl van het besturingselement splitsknop wordt geklikt, wordt in het besturingselement het opgegeven submenu weergegeven, niet de menubalk.
In de volgende afbeelding ziet u een dialoogvenster met een pager-besturingselement en een (1) gesplitst knop besturingselement. De vervolgkeuzepijl (2) is al geklikt en het submenu (3) wordt weergegeven.
Example
De eerste instructie in het volgende codevoorbeeld demonstreert de methode CSplitButton::SetDropDownMenu . We hebben het menu gemaakt met de Visual Studio-resource-editor, die automatisch de naam van de menubalk-id IDR_MENU1. De parameter nSubMenuId , die nul is, verwijst naar het enige submenu van de menubalk.
// 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);