CSplitButton Sınıfı
CSplitButton
sınıfı bölünmüş düğme denetimini temsil eder. Bölünmüş düğme denetimi, kullanıcı düğmenin ana bölümüne tıkladığında varsayılan bir davranış gerçekleştirir ve kullanıcı düğmenin açılan okuna tıkladığında açılan menü görüntüler.
Sözdizimi
class CSplitButton : public CButton
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CSplitButton::CSplitButton | Bir CSplitButton nesne oluşturur. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CSplitButton::Create | Belirtilen stiller içeren bir bölünmüş düğme denetimi oluşturur ve bunu geçerli CSplitButton nesneye ekler. |
CSplitButton::SetDropDownMenu | Kullanıcı geçerli bölünmüş düğme denetiminin açılan okuna tıkladığında görüntülenen açılan menüyü ayarlar. |
Korumalı Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CSplitButton::OnDropDown | Kullanıcı geçerli bölünmüş düğme denetiminin açılan okuna tıkladığında sistemin gönderdiği BCN_DROPDOWN bildirimini işler. |
Açıklamalar
CSplitButton
sınıfı CButton sınıfından türetilir. Bölünmüş düğme denetimi, stili BS_SPLITBUTTON olan bir düğme denetimidir. Kullanıcı açılan oka tıkladığında özel bir menü görüntüler. Daha fazla bilgi için Düğme Stilleri'ndeki BS_SPLITBUTTON ve BS_DEFSPLITBUTTON stillerine bakın.
Aşağıdaki şekilde, disk belleği denetimi ve (1) bölünmüş düğme denetimi içeren bir iletişim kutusu gösterilmektedir. (2) açılan okuna zaten tıklanmıştır ve (3) alt menüsü görüntülenir.
Devralma Hiyerarşisi
CSplitButton
Gereksinimler
Üst bilgi: afxcmn.h
Bu sınıf Windows Vista ve sonraki sürümlerde desteklenir.
Bu sınıf için ek gereksinimler, Windows Vista Ortak Denetimleri için Derleme Gereksinimleri bölümünde açıklanmıştır.
CSplitButton::Create
Belirtilen stiller içeren bir bölünmüş düğme denetimi oluşturur ve bunu geçerli CSplitButton
nesneye ekler.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametreler
dwStyle
[in] Denetime uygulanacak stillerden oluşan bit düzeyinde bir birleşim (OR). Daha fazla bilgi için bkz . Düğme Stilleri.
Rect
[in] Denetimin konumunu ve boyutunu içeren rect yapısına başvuru.
pParentWnd
[in] Denetimin üst penceresi olan bir CWnd nesnesinin null olmayan işaretçisi.
Nıd
[in] Denetimin kimliği.
Dönüş Değeri
Bu yöntem başarılı olursa TRUE; aksi takdirde YANLIŞ.
CSplitButton::CSplitButton
Bir CSplitButton
nesne oluşturur. Oluşturucunun parametreleri, kullanıcı bölünmüş düğme denetiminin açılan okuna tıkladığında görüntülenen bir alt menü belirtir.
CSplitButton();
CSplitButton(
UINT nMenuId,
UINT nSubMenuId)
CSplitButton(CMenu* pMenu)
Parametreler
nMenuId
[in] Menü çubuğunun kaynak kimliği.
nSubMenuId
[in] Bir alt menünün kaynak kimliği.
pMenu
[in] Bir alt menü belirten bir CMenu nesnesi işaretçisi. CSplitButton
Nesne kapsamın dışına çıktığında nesnesi ve ilişkili HMENU'sunu CSplitButton
silerCMenu
.
Açıklamalar
Bölünmüş düğme denetimi oluşturmak ve bunu nesneye eklemek CSplitButton
için CSplitButton::Create yöntemini kullanın.
CSplitButton::OnDropDown
Kullanıcı geçerli bölünmüş düğme denetiminin açılan okuna tıkladığında sistemin gönderdiği BCN_DROPDOWN bildirimini işler.
afx_msg void OnDropDown(
NMHDR* pNMHDR,
LRESULT* pResult);
Parametreler
pNMHDR
[in] BCN_DROPDOWN bildirimi hakkında bilgi içeren bir NMHDR yapısının işaretçisi.
pResult
[out] (Kullanılmaz; değer döndürülmedi.) BCN_DROPDOWN bildiriminin dönüş değeri.
Açıklamalar
Kullanıcı bölünmüş düğme denetimindeki açılan oka tıkladığında, sistem yöntemin OnDropDown
işlediği bir BCN_DROPDOWN bildirim iletisi gönderir. Ancak nesne, CSplitButton
BCN_DROPDOWN bildirimini bölme düğmesi denetimini içeren denetime iletmez. Sonuç olarak, içeren denetim bildirime yanıt olarak özel bir eylemi destekleyemez.
İçeren denetimin desteklediği özel bir eylem uygulamak için, nesne yerine BS_SPLITBUTTON stiline sahip bir CSplitButton
CButton nesnesi kullanın. Ardından nesnesinde BCN_DROPDOWN bildirimi için bir işleyici uygulayın CButton
. Daha fazla bilgi için bkz . Düğme Stilleri.
Bölünmüş düğme denetiminin desteklediği özel bir eylem uygulamak için ileti yansımasını kullanın. sınıfından CSplitButton
kendi sınıfınızı türetin ve CMySplitButton gibi bir ad verin. Ardından BCN_DROPDOWN bildirimini işlemek için aşağıdaki ileti eşlemesini uygulamanıza ekleyin:
BEGIN_MESSAGE_MAP(CMySplitButton,
CSplitButton)
ON_NOTIFY_REFLECT(BCN_DROPDOWN, &CMySplitButton::OnDropDown)
END_MESSAGE_MAP()
CSplitButton::SetDropDownMenu
Kullanıcı geçerli bölünmüş düğme denetiminin açılan okuna tıkladığında görüntülenen açılan menüyü ayarlar.
void SetDropDownMenu(
UINT nMenuId,
UINT nSubMenuId);
void SetDropDownMenu(CMenu* pMenu);
Parametreler
nMenuId
[in] Menü çubuğunun kaynak kimliği.
nSubMenuId
[in] Bir alt menünün kaynak kimliği.
pMenu
[in] Bir alt menü belirten bir CMenu nesnesinin işaretçisi. CSplitButton
Nesne kapsamın dışına çıktığında nesnesi ve ilişkili HMENU'sunu CSplitButton
silerCMenu
.
Açıklamalar
nMenuId parametresi, menü çubuğu öğelerinin yatay bir listesi olan menü çubuğunu tanımlar. nSubMenuId parametresi, her menü çubuğu öğesiyle ilişkili menü öğelerinin açılan listesi olan bir alt menüyü tanımlayan sıfır tabanlı bir dizin numarasıdır. Örneğin, tipik bir uygulamanın "Dosya", "Düzenle" ve "Yardım" menü çubuğu öğelerini içeren bir menüsü vardır. "Dosya" menü çubuğu öğesinin "Aç", "Kapat" ve "Çık" menü öğelerini içeren bir alt menüsü vardır. Bölünmüş düğme denetiminin aşağı açılan okuna tıklandığında, denetim menü çubuğunu değil belirtilen alt menüyü görüntüler.
Aşağıdaki şekilde, disk belleği denetimi ve (1) bölünmüş düğme denetimi içeren bir iletişim kutusu gösterilmektedir. (2) açılan okuna zaten tıklanmıştır ve (3) alt menüsü görüntülenir.
Örnek
Aşağıdaki kod örneğindeki ilk deyim CSplitButton::SetDropDownMenu yöntemini gösterir. Menüyü, menü çubuğu kimliğini otomatik olarak IDR_MENU1 adlandıran Visual Studio kaynak düzenleyicisiyle oluşturduk. Sıfır olan nSubMenuId parametresi, menü çubuğunun tek alt menüsüne başvurur.
// 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);