CButton Sınıfı
Windows düğmesi denetimlerinin işlevselliğini sağlar.
Sözdizimi
class CButton : public CWnd
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CButton::CButton | Bir CButton nesne oluşturur. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CButton::Create | Windows düğmesi denetimini oluşturur ve nesneye CButton ekler. |
CButton::D rawItem | Sahip tarafından çizilmiş CButton bir nesne çizmek için geçersiz kılın. |
CButton::GetBitmap | SetBitmap ile önceden ayarlanmış bit eşlem tutamacını alır. |
CButton::GetButtonStyle | Düğme denetim stili hakkındaki bilgileri alır. |
CButton::GetCheck | Düğme denetiminin denetim durumunu alır. |
CButton::GetCursor | Daha önce SetCursor ile ayarlanan imleç görüntüsünün tutamacını alır. |
CButton::GetIcon | Daha önce SetIcon ile ayarlanan simgenin tutamacını alır. |
CButton::GetIdealSize | Düğme denetiminin ideal boyutunu alır. |
CButton::GetImageList | Düğme denetiminin görüntü listesini alır. |
CButton::GetNote | Geçerli komut bağlantısı denetiminin not bileşenini alır. |
CButton::GetNoteLength | Geçerli komut bağlantısı denetimi için not metninin uzunluğunu alır. |
CButton::GetSplitGlyph | Geçerli bölünmüş düğme denetimiyle ilişkili karakteri alır. |
CButton::GetSplitImageList | Geçerli bölünmüş düğme denetimi için görüntü listesini alır. |
CButton::GetSplitInfo | Geçerli bölünmüş düğme denetimini tanımlayan bilgileri alır. |
CButton::GetSplitSize | Geçerli bölünmüş düğme denetiminin açılan bileşeninin sınırlayıcı dikdörtgenini alır. |
CButton::GetSplitStyle | Geçerli bölünmüş düğme denetimini tanımlayan bölünmüş düğme stillerini alır. |
CButton::GetState | Düğme denetiminin denetim durumunu, vurgu durumunu ve odak durumunu alır. |
CButton::GetTextMargin | Düğme denetiminin metin kenar boşluğunu alır. |
CButton::SetBitmap | Düğmede görüntülenecek bit eşlemi belirtir. |
CButton::SetButtonStyle | Düğmenin stilini değiştirir. |
CButton::SetCheck | Düğme denetiminin denetim durumunu ayarlar. |
CButton::SetCursor | Düğmede görüntülenecek imleç görüntüsünü belirtir. |
CButton::SetDropDownState | Geçerli bölünmüş düğme denetiminin açılan durumunu ayarlar. |
CButton::SetIcon | Düğmede görüntülenecek simgeyi belirtir. |
CButton::SetImageList | Düğme denetiminin görüntü listesini ayarlar. |
CButton::SetNote | Geçerli komut bağlantısı denetimindeki notu ayarlar. |
CButton::SetSplitGlyph | Belirtilen bir karakteri geçerli bölünmüş düğme denetimiyle ilişkilendirir. |
CButton::SetSplitImageList | Bir görüntü listesini geçerli bölünmüş düğme denetimiyle ilişkilendirir. |
CButton::SetSplitInfo | Geçerli bölünmüş düğme denetimini tanımlayan bilgileri belirtir. |
CButton::SetSplitSize | Geçerli bölünmüş düğme denetiminin açılan bileşeninin sınırlayıcı dikdörtgenini ayarlar. |
CButton::SetSplitStyle | Geçerli bölünmüş düğme denetiminin stilini ayarlar. |
CButton::SetState | Düğme denetiminin vurgulama durumunu ayarlar. |
CButton::SetTextMargin | Düğme denetiminin metin kenar boşluğunu ayarlar. |
Açıklamalar
Düğme denetimi, tıklanıp kapatılabilen küçük, dikdörtgen bir alt penceredir. Düğmeler tek başına veya gruplar halinde kullanılabilir ve etiketlenebilir veya metin olmadan görüntülenebilir. Düğme genellikle kullanıcı tıkladığında görünümü değiştirir.
Tipik düğmeler onay kutusu, radyo düğmesi ve basma düğmesidir. Bir CButton
nesne, Create member işlevi tarafından başlatılırken belirtilen düğme stiline göre bunlardan herhangi birine dönüşebilir.
Ayrıca, öğesinden CButton
türetilen CBitmapButton sınıfı, metin yerine bit eşlem görüntüleriyle etiketlenmiş düğme denetimlerinin oluşturulmasını destekler. bir CBitmapButton
düğmenin yukarı, aşağı, odaklanmış ve devre dışı durumları için ayrı bit eşlemlere sahip olabilir.
Bir iletişim kutusu şablonundan veya doğrudan kodunuz içinde bir düğme denetimi oluşturabilirsiniz. Her iki durumda da önce nesneyi oluşturmak için oluşturucuyu CButton
çağırın CButton
; ardından Üye işlevini çağırarak Create
Windows düğmesi denetimini oluşturun ve nesneye CButton
ekleyin.
İnşaat, sınıfından CButton
türetilen tek adımlı bir işlem olabilir. Türetilmiş sınıf için bir oluşturucu yazın ve oluşturucunun içinden çağrısı Create
gerçekleştirin.
Bir düğme denetimi tarafından üst öğesine gönderilen Windows bildirim iletilerini işlemek istiyorsanız (genellikle CDialog'dan türetilen bir sınıf), her ileti için üst sınıfa bir ileti eşleme girdisi ve ileti işleyicisi üye işlevi ekleyin.
Her ileti eşleme girdisi aşağıdaki formu alır:
ON_Notification ( id, memberFxn )
burada id , bildirimi gönderen denetimin alt pencere kimliğini belirtir ve memberFxn, bildirimi işlemek için yazdığınız üst üye işlevinin adıdır.
Ebeveynin işlev prototipi aşağıdaki gibidir:
afx_msg void memberFxn();
Olası ileti eşlemesi girişleri aşağıdaki gibidir:
Eşleme girdisi | Ebeveyne gönderildiğinde... |
---|---|
ON_BN_CLICKED | Kullanıcı bir düğmeye tıklar. |
ON_BN_DOUBLECLICKED | Kullanıcı bir düğmeye çift tıklar. |
İletişim kutusu kaynağından bir CButton
nesne oluşturursanız, CButton
kullanıcı iletişim kutusunu kapattığında nesne otomatik olarak yok edilir.
Bir pencere içinde bir CButton
nesne oluşturursanız, onu yok etmeniz gerekebilir. işlevini kullanarak new
yığında nesnesi oluşturursanızCButton
, kullanıcı Windows düğme denetimini kapattığında yok etmek için nesne üzerinde çağrısında delete
bulunması gerekir. Nesneyi yığında oluşturursanız CButton
veya üst iletişim kutusu nesnesine eklenirse, nesne otomatik olarak yok edilir.
Devralma Hiyerarşisi
CButton
Gereksinimler
Üst bilgi: afxwin.h
CButton::CButton
Bir CButton
nesne oluşturur.
CButton();
Örnek
// Declare a button object.
CButton myButton;
CButton::Create
Windows düğmesi denetimini oluşturur ve nesneye CButton
ekler.
virtual BOOL Create(
LPCTSTR lpszCaption,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametreler
lpszCaption
Düğme denetiminin metnini belirtir.
dwStyle
Düğme denetiminin stilini belirtir. Düğmeye düğme stillerinin herhangi bir bileşimini uygulayın.
Rect
Düğme denetiminin boyutunu ve konumunu belirtir. Nesne veya RECT
yapı olabilirCRect
.
pParentWnd
Düğme denetiminin üst penceresini ( genellikle bir CDialog
) belirtir. NULL olmamalıdır.
Nıd
Düğme denetiminin kimliğini belirtir.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
İki adımda bir CButton
nesne oluşturursunuz. İlk olarak oluşturucuyu çağırın ve ardından Windows düğme denetimini oluşturan ve nesnesine ekleyen öğesini çağırınCreate
CButton
.
WS_VISIBLE stili verilirse, Windows düğme denetimini etkinleştirmek ve düğmeyi göstermek için gereken tüm iletileri gönderir.
Düğme denetimine aşağıdaki pencere stillerini uygulayın:
Her Zaman WS_CHILD
WS_VISIBLE Genellikle
WS_DISABLED Nadiren
WS_GROUP Gruplandırma denetimleri
WS_TABSTOP Düğmeyi sekme sırasına eklemek için
Örnek
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
Sahip tarafından çizilen bir düğmenin görsel bir yönü değiştiğinde çerçeve tarafından çağrılır.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Parametreler
lpDrawItemStruct
DRAWITEMSTRUCT yapısına yönelik uzun bir işaretçi. Yapı, çizilecek öğe ve gerekli çizim türü hakkında bilgi içerir.
Açıklamalar
Sahip tarafından çizilen düğmede BS_OWNERDRAW stili ayarlanmıştır. Sahip tarafından çizilmiş CButton
bir nesne için çizim uygulamak için bu üye işlevini geçersiz kılın. Uygulama, üye işlevi sonlanmadan önce lpDrawItemStruct içinde sağlanan görüntü bağlamı için seçilen tüm grafik cihaz arabirimi (GDI) nesnelerini geri yüklemelidir.
Ayrıca BS_ stil değerlerine de bakın.
Örnek
// 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
Daha önce SetBitmap ile ayarlanmış ve bir düğmeyle ilişkilendirilmiş bit eşlem tutamacını almak için bu üye işlevini çağırın.
HBITMAP GetBitmap() const;
Dönüş Değeri
Bit eşlem tutamacı. Daha önce bit eşlem belirtilmemişse NULL.
Örnek
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
Düğme denetim stili hakkındaki bilgileri alır.
UINT GetButtonStyle() const;
Dönüş Değeri
Bu CButton
nesnenin düğme stillerini döndürür. Bu işlev, diğer pencere stillerinden herhangi birini değil yalnızca BS_ stil değerlerini döndürür.
Örnek
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
Radyo düğmesinin veya onay kutusunun onay durumunu alır.
int GetCheck() const;
Dönüş Değeri
BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON veya BS_3STATE stiliyle oluşturulan düğme denetiminden döndürülen değer aşağıdaki değerlerden biridir:
Değer | Anlamı |
---|---|
BST_UNCHECKED | Düğme durumu işaretlenmemiş. |
BST_CHECKED | Düğme durumu işaretli. |
BST_INDETERMINATE | Düğme durumu belirsiz (yalnızca düğmenin BS_3STATE veya BS_AUTO3STATE stili varsa geçerlidir). |
Düğmenin başka bir stili varsa, dönüş değeri BST_UNCHECKED.
Örnek
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
Daha önce SetCursor ile ayarlanmış ve bir düğmeyle ilişkilendirilmiş bir imlecin tutamacını almak için bu üye işlevini çağırın.
HCURSOR GetCursor();
Dönüş Değeri
İmleç görüntüsünün tutamacı. Önceden imleç belirtilmemişse NULL.
Örnek
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
Daha önce SetIcon ile ayarlanmış ve bir düğmeyle ilişkilendirilmiş bir simgenin tutamacını almak için bu üye işlevini çağırın.
HICON GetIcon() const;
Dönüş Değeri
Simgenin tutamacı. Daha önce simge belirtilmemişse NULL.
Örnek
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
Düğme denetimi için ideal boyutu alır.
BOOL GetIdealSize(SIZE* psize);
Parametreler
psize
Düğmenin geçerli boyutuna işaret eden bir işaretçi.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Bu üye işlevi, Windows SDK'sının Düğmeler bölümünde açıklandığı gibi BCM_GETIDEALSIZE iletisinin işlevselliğine öykünmektedir.
CButton::GetImageList
Düğme denetiminden görüntü listesini almak için bu yöntemi çağırın.
BOOL GetImageList(PBUTTON_IMAGELIST pbuttonImagelist);
Parametreler
pbuttonImagelist
Nesnenin görüntü listesinin işaretçisi CButton
.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Bu üye işlevi, Windows SDK'sının Düğmeler bölümünde açıklandığı gibi BCM_GETIMAGELIST iletisinin işlevselliğine öykünmektedir.
CButton::GetNote
Geçerli komut bağlantısı denetimiyle ilişkili not metnini alır.
CString GetNote() const;
BOOL GetNote(
LPTSTR lpszNote,
UINT* cchNote) const;
Parametreler
lpszNote
[out] Çağıranın ayırma ve serbest bırakmadan sorumlu olduğu bir arabelleğe yönelik işaretçi. Dönüş değeri TRUE ise, arabellek geçerli komut bağlantısı denetimiyle ilişkili not metnini içerir; aksi takdirde arabellek değişmez.
cchNote
[in, out] İşaretsiz bir tamsayı değişkeninin işaretçisi. Bu yöntem çağrıldığında değişken, lpszNote parametresi tarafından belirtilen arabellek boyutunu içerir. Bu yöntem döndürdüğünde, dönüş değeri TRUE ise değişken geçerli komut bağlantısı denetimiyle ilişkili notun boyutunu içerir. Dönüş değeri YANLIŞ ise, değişken notu içermek için gereken arabellek boyutunu içerir.
Dönüş Değeri
İlk aşırı yüklemede, geçerli komut bağlantısı denetimiyle ilişkili not metnini içeren bir CString nesnesi.
-veya-
İkinci aşırı yüklemede, bu yöntem başarılı olursa TRUE; aksi takdirde YANLIŞ.
Açıklamalar
Bu yöntemi yalnızca düğme stili BS_COMMANDLINK veya BS_DEFCOMMANDLINK olan denetimlerle kullanın.
Bu yöntem, Windows SDK'sında açıklanan BCM_GETNOTE iletisini gönderir.
CButton::GetNoteLength
Geçerli komut bağlantısı denetimi için not metninin uzunluğunu alır.
UINT GetNoteLength() const;
Dönüş Değeri
Geçerli komut bağlantısı denetimi için 16 bit Unicode karakterleriyle not metninin uzunluğu.
Açıklamalar
Bu yöntemi yalnızca düğme stili BS_COMMANDLINK veya BS_DEFCOMMANDLINK olan denetimlerle kullanın.
Bu yöntem, Windows SDK'sında açıklanan BCM_GETNOTELENGTH iletisini gönderir.
CButton::GetSplitGlyph
Geçerli bölünmüş düğme denetimiyle ilişkili karakteri alır.
TCHAR GetSplitGlyph() const;
Dönüş Değeri
Geçerli bölünmüş düğme denetimiyle ilişkili karakter karakteri.
Açıklamalar
Karakter, belirli bir yazı tipindeki bir karakterin fiziksel gösterimidir. Örneğin, bölünmüş düğme denetimi Unicode onay işareti karakterinin karakteriyle (U+2713) dekore edilmiş olabilir.
Bu yöntemi yalnızca düğme stili BS_SPLITBUTTON veya BS_DEFSPLITBUTTON olan denetimlerle kullanın.
Bu yöntem, BCSIF_GLYPH bayrağıyla bir BUTTON_SPLITINFO yapısının üyesini başlatır mask
ve ardından bu yapıyı Windows SDK'sında açıklanan BCM_GETSPLITINFO iletisine gönderir. İleti işlevi döndürdüğünde, bu yöntem yapının üyesinden himlGlyph
karakteri alır.
CButton::GetSplitImageList
Geçerli bölünmüş düğme denetimi için görüntü listesini alır.
CImageList* GetSplitImageList() const;
Dönüş Değeri
CImageList nesnesinin işaretçisi.
Açıklamalar
Bu yöntemi yalnızca düğme stili BS_SPLITBUTTON veya BS_DEFSPLITBUTTON olan denetimlerle kullanın.
Bu yöntem, BCSIF_IMAGE bayrağıyla bir BUTTON_SPLITINFO yapısının üyesini başlatır mask
ve ardından bu yapıyı Windows SDK'sında açıklanan BCM_GETSPLITINFO iletisine gönderir. İleti işlevi döndürdüğünde, bu yöntem yapı üyesinden himlGlyph
görüntü listesini alır.
CButton::GetSplitInfo
Windows'un geçerli bölünmüş düğme denetimini nasıl çizdiğini belirleyen parametreleri alır.
BOOL GetSplitInfo(PBUTTON_SPLITINFO pInfo) const;
Parametreler
pInfo
[out] Geçerli bölünmüş düğme denetimi hakkında bilgi alan bir BUTTON_SPLITINFO yapısının işaretçisi. Çağıran, yapıyı ayırmadan sorumludur.
Dönüş Değeri
Bu yöntem başarılı olursa TRUE; aksi takdirde YANLIŞ.
Açıklamalar
Bu yöntemi yalnızca düğme stili BS_SPLITBUTTON veya BS_DEFSPLITBUTTON olan denetimlerle kullanın.
Bu yöntem, Windows SDK'sında açıklanan BCM_GETSPLITINFO iletisini gönderir.
CButton::GetSplitSize
Geçerli bölünmüş düğme denetiminin açılan bileşeninin sınırlayıcı dikdörtgenini alır.
BOOL GetSplitSize(LPSIZE pSize) const;
Parametreler
pSize
[out] Bir dikdörtgenin açıklamasını alan BOYUT yapısına yönelik işaretçi.
Dönüş Değeri
Bu yöntem başarılı olursa TRUE; aksi takdirde YANLIŞ.
Açıklamalar
Bu yöntemi yalnızca düğme stili BS_SPLITBUTTON veya BS_DEFSPLITBUTTON olan denetimlerle kullanın.
Bölünmüş düğme denetimi genişletildiğinde, liste denetimi veya çağrı cihazı denetimi gibi bir açılan bileşen görüntüleyebilir. Bu yöntem, açılan bileşeni içeren sınırlayıcı dikdörtgeni alır.
Bu yöntem, BCSIF_SIZE bayrağıyla bir BUTTON_SPLITINFO yapısının üyesini başlatır mask
ve ardından bu yapıyı Windows SDK'sında açıklanan BCM_GETSPLITINFO iletisine gönderir. İleti işlevi döndürdüğünde, bu yöntem sınırlayıcı dikdörtgeni yapının üyesinden size
alır.
CButton::GetSplitStyle
Geçerli bölünmüş düğme denetimini tanımlayan bölünmüş düğme stillerini alır.
UINT GetSplitStyle() const;
Dönüş Değeri
Bölünmüş düğme stillerinin bit düzeyinde birleşimi. Daha fazla bilgi için bkzuSplitStyle
. BUTTON_SPLITINFO yapısının üyesi.
Açıklamalar
Bu yöntemi yalnızca düğme stili BS_SPLITBUTTON veya BS_DEFSPLITBUTTON olan denetimlerle kullanın.
Bölünmüş düğme stilleri, Windows'un bölünmüş düğme simgesi çizdiği hizalamayı, en boy oranını ve grafik biçimini belirtir.
Bu yöntem, BCSIF_STYLE bayrağıyla bir BUTTON_SPLITINFO yapısının üyesini başlatır mask
ve ardından bu yapıyı Windows SDK'sında açıklanan BCM_GETSPLITINFO iletisine gönderir. İleti işlevi döndürdüğünde, bu yöntem yapının üyesinden uSplitStyle
bölünmüş düğme stillerini alır.
CButton::GetState
Düğme denetiminin durumunu alır.
UINT GetState() const;
Dönüş Değeri
Bir düğme denetiminin geçerli durumunu gösteren değerlerin birleşimini içeren bit alanı. Aşağıdaki tabloda olası değerler listelemektedir.
Düğme Durumu | Value | Açıklama |
---|---|---|
BST_UNCHECKED | 0x0000 | İlk durum. |
BST_CHECKED | 0x0001 | Düğme denetimi denetlendi. |
BST_INDETERMINATE | 0x0002 | Durum belirsizdir (yalnızca düğme denetiminin üç durumu olduğunda mümkündür). |
BST_PUSHED | 0x0004 | Düğme denetimine basılır. |
BST_FOCUS | 0x0008 | Odak düğme denetimindedir. |
Açıklamalar
BS_3STATE veya BS_AUTO3STATE düğme stiline sahip bir düğme denetimi, belirsiz durum olarak adlandırılan üçüncü bir duruma sahip bir onay kutusu oluşturur. Belirsiz durum, onay kutusunun işaretlenmediğini veya işaretlenmediğini gösterir.
Örnek
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
Nesnenin metin kenar boşluğunu almak için bu yöntemi çağırın CButton
.
BOOL GetTextMargin(RECT* pmargin);
Parametreler
pmargin
Nesnenin metin kenar boşluğuna işaret eden CButton
bir işaretçi.
Dönüş Değeri
Metin kenar boşluğunu döndürür. Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Bu üye işlevi, Windows SDK'sının Düğmeler bölümünde açıklandığı gibi BCM_GETTEXTMARGIN iletisinin işlevselliğine öykünmektedir.
CButton::SetBitmap
Düğmeyle yeni bir bit eşlem ilişkilendirmek için bu üye işlevini çağırın.
HBITMAP SetBitmap(HBITMAP hBitmap);
Parametreler
hBitmap
Bit eşlem tutamacı.
Dönüş Değeri
Daha önce düğmeyle ilişkilendirilmiş bit eşlem tutamacı.
Açıklamalar
Bit eşlem, düğmenin yüzüne otomatik olarak yerleştirilir ve varsayılan olarak ortalanır. Bit eşlem düğme için çok büyükse, her iki tarafa da kırpılır. Aşağıdakiler de dahil olmak üzere diğer hizalama seçeneklerini belirleyebilirsiniz:
BS_TOP
BS_LEFT
BS_RIGHT
BS_CENTER
BS_BOTTOM
BS_VCENTER
Düğme başına dört bit eşlem kullanan CBitmapButton'ın aksine, SetBitmap
düğme başına yalnızca bir bit eşlem kullanır. Düğmeye basıldığında bit eşlem aşağı ve sağa doğru kayıyor gibi görünür.
Bit eşlemi bitirdiğinizde serbest bırakmak sizin sorumluluğunuzdadır.
Örnek
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
Düğmenin stilini değiştirir.
void SetButtonStyle(
UINT nStyle,
BOOL bRedraw = TRUE);
Parametreler
nStyle
Düğme stilini belirtir.
bRedraw
Düğmenin yeniden çizilip çizilmeyeceğini belirtir. Sıfır olmayan bir değer düğmeyi yeniden çizer. 0 değeri düğmeyi yeniden çizmez. Düğme varsayılan olarak yeniden çizilir.
Açıklamalar
GetButtonStyle
Düğme stilini almak için üye işlevini kullanın. Tam düğme stilinin düşük sıralı sözcüğü, düğmeye özgü stildir.
Örnek
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
Radyo düğmesinin veya onay kutusunun onay durumunu ayarlar veya sıfırlar.
void SetCheck(int nCheck);
Parametreler
nCheck
Denetim durumunu belirtir. Bu parametre aşağıdakilerden biri olabilir:
Değer | Anlamı |
---|---|
BST_UNCHECKED | Düğme durumunu işaretlenmemiş olarak ayarlayın. |
BST_CHECKED | Düğme durumunu işaretli olarak ayarlayın. |
BST_INDETERMINATE | Düğme durumunu belirsiz olarak ayarlayın. Bu değer yalnızca düğmenin BS_3STATE veya BS_AUTO3STATE stili varsa kullanılabilir. |
Açıklamalar
Bu üye işlevinin bir düğme üzerinde hiçbir etkisi yoktur.
Örnek
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
Yeni bir imleci düğmeyle ilişkilendirmek için bu üye işlevini çağırın.
HCURSOR SetCursor(HCURSOR hCursor);
Parametreler
hCursor
İmlecin tutamacı.
Dönüş Değeri
Daha önce düğmeyle ilişkilendirilmiş bir imlecin tutamacı.
Açıklamalar
İmleç otomatik olarak düğmenin yüzüne yerleştirilir ve varsayılan olarak ortalanır. İmleç düğme için çok büyükse, iki tarafa da kırpılır. Aşağıdakiler de dahil olmak üzere diğer hizalama seçeneklerini belirleyebilirsiniz:
BS_TOP
BS_LEFT
BS_RIGHT
BS_CENTER
BS_BOTTOM
BS_VCENTER
Düğme başına dört bit eşlem kullanan CBitmapButton'ın aksine, SetCursor
düğme başına yalnızca bir imleç kullanır. Düğmeye basıldığında, imleç aşağı ve sağa doğru kayacak şekilde görünür.
Örnek
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
Geçerli bölünmüş düğme denetiminin açılan durumunu ayarlar.
BOOL SetDropDownState(BOOL fDropDown);
Parametreler
fDropDown
[in] BST_DROPDOWNPUSHED durumunu ayarlamak için TRUE; aksi takdirde YANLIŞ.
Dönüş Değeri
Bu yöntem başarılı olursa TRUE; aksi takdirde YANLIŞ.
Açıklamalar
Bölünmüş düğme denetimi, BS_SPLITBUTTON veya BS_DEFSPLITBUTTON stiline sahiptir ve sağ tarafındaki bir düğme ve açılan oklardan oluşur. Daha fazla bilgi için bkz . Düğme Stilleri. Genellikle, kullanıcı açılan oka tıkladığında açılan durum ayarlanır. Denetimin açılan durumunu program aracılığıyla ayarlamak için bu yöntemi kullanın. Aşağı açılan ok, durumu belirtmek için gölgeli çizilir.
Bu yöntem, Windows SDK'sında açıklanan BCM_SETDROPDOWNSTATE iletisini gönderir.
Örnek
İlk kod örneği, m_splitButton
bölünmüş düğme denetimine program aracılığıyla erişmek için kullanılan değişkenini tanımlar. Bu değişken aşağıdaki örnekte kullanılmıştır.
public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;
Sonraki kod örneği, açılan okun gönderildiğini belirtmek için bölünmüş düğme denetiminin durumunu ayarlar.
/* 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
Geçerli düğme denetiminin elevation required
durumunu olarak ayarlar. Bu, denetimin yükseltilmiş bir güvenlik simgesi görüntülemesi için gereklidir.
BOOL SetElevationRequired(BOOL fElevationRequired);
Parametreler
fElevationRequired
[in] Durumu ayarlamak elevation required
için TRUE; aksi takdirde YANLIŞ.
Dönüş Değeri
Bu yöntem başarılı olursa TRUE; aksi takdirde YANLIŞ.
Açıklamalar
Bir düğme veya komut bağlantısı denetimi bir eylemi gerçekleştirmek için yükseltilmiş güvenlik izni gerektiriyorsa, denetimi durum olarak elevation required
ayarlayın. Daha sonra Windows, denetimde Kullanıcı Hesabı Denetimi (UAC) kalkan simgesini görüntüler. Daha fazla bilgi için bkz . Kullanıcı Hesabı Denetimi.
Bu yöntem, Windows SDK'sında açıklanan BCM_SETSHIELD iletisini gönderir.
CButton::SetIcon
Düğmeyle yeni bir simge ilişkilendirmek için bu üye işlevini çağırın.
HICON SetIcon(HICON hIcon);
Parametreler
hIcon
Simgenin tutamacı.
Dönüş Değeri
Daha önce düğmeyle ilişkilendirilmiş bir simgenin tutamacı.
Açıklamalar
Simge, düğmenin yüzüne otomatik olarak yerleştirilir ve varsayılan olarak ortalanır. Simge düğme için çok büyükse, iki tarafa da kırpılır. Aşağıdakiler de dahil olmak üzere diğer hizalama seçeneklerini belirleyebilirsiniz:
BS_TOP
BS_LEFT
BS_RIGHT
BS_CENTER
BS_BOTTOM
BS_VCENTER
Düğme başına dört bit eşlem kullanan CBitmapButton'ın aksine, SetIcon
düğme başına yalnızca bir simge kullanır. Düğmeye basıldığında simge aşağı ve sağa doğru kayacak şekilde görünür.
Örnek
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
Nesnenin görüntü listesini ayarlamak için bu yöntemi çağırın CButton
.
BOOL SetImageList(PBUTTON_IMAGELIST pbuttonImagelist);
Parametreler
pbuttonImagelist
Yeni resim listesinin işaretçisi.
Dönüş Değeri
Başarılı olduğunda TRUE, hatada YANLIŞ döndürür.
Açıklamalar
Bu üye işlevi, Windows SDK'sının Düğmeler bölümünde açıklandığı gibi BCM_SETIMAGELIST iletisinin işlevselliğine öykünmektedir.
CButton::SetNote
Geçerli komut bağlantısı denetimi için not metnini ayarlar.
BOOL SetNote(LPCTSTR lpszNote);
Parametreler
lpszNote
[in] Komut bağlantısı denetimi için not metni olarak ayarlanmış bir Unicode dizesi işaretçisi.
Dönüş Değeri
Bu yöntem başarılı olursa TRUE; aksi takdirde YANLIŞ.
Açıklamalar
Bu yöntemi yalnızca düğme stili BS_COMMANDLINK veya BS_DEFCOMMANDLINK olan denetimlerle kullanın.
Bu yöntem, Windows SDK'sında açıklanan BCM_SETNOTE iletisini gönderir.
Örnek
İlk kod örneği, m_cmdLink
komut bağlantısı denetimine program aracılığıyla erişmek için kullanılan değişkenini tanımlar. Bu değişken aşağıdaki örnekte kullanılmıştır.
public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;
Sonraki kod örneği, komut bağlantısı denetimi için not metnini ayarlar.
// Set the command link text.
m_cmdLink.SetNote(_T("This is the command link note."));
CButton::SetSplitGlyph
Belirtilen bir karakteri geçerli bölünmüş düğme denetimiyle ilişkilendirir.
BOOL SetSplitGlyph(TCHAR chGlyph);
Parametreler
chGlyph
[in] Bölünmüş düğme açılan oku olarak kullanılacak karakteri belirten karakter.
Dönüş Değeri
Bu yöntem başarılı olursa TRUE; aksi takdirde YANLIŞ.
Açıklamalar
Bu yöntemi yalnızca düğme stili BS_SPLITBUTTON veya BS_DEFSPLITBUTTON olan denetimlerle kullanın.
Karakter, belirli bir yazı tipindeki bir karakterin fiziksel gösterimidir. chGlyph parametresi glif olarak kullanılmaz, bunun yerine sistem tanımlı bir karakter kümesinden bir karakter seçmek için kullanılır. Varsayılan açılan ok karakteri '6' karakteriyle belirtilir ve Unicode karakterE BENZER SİYAH AŞAĞI İŞARET ÜÇGENİ (U+25BC).
Bu yöntem, BCSIF_GLYPH bayrağıyla bir BUTTON_SPLITINFO yapısının himlGlyph
üyesini ve chGlyph parametresine sahip üyeyi başlatır mask
ve ardından bu yapıyı Windows SDK'sında açıklanan BCM_GETSPLITINFO iletisine gönderir.
CButton::SetSplitImageList
Bir görüntü listesini geçerli bölünmüş düğme denetimiyle ilişkilendirir.
BOOL SetSplitImageList(CImageList* pSplitImageList);
Parametreler
pSplitImageList
[in] Geçerli bölünmüş düğme denetimine atanacak bir CImageList nesnesi işaretçisi.
Dönüş Değeri
Bu yöntem başarılı olursa TRUE; aksi takdirde YANLIŞ.
Açıklamalar
Bu yöntemi yalnızca düğme stili BS_SPLITBUTTON veya BS_DEFSPLITBUTTON olan denetimlerle kullanın.
Bu yöntem, BCSIF_IMAGE bayrağıyla bir BUTTON_SPLITINFO yapısının üyesini himlGlyph
ve pSplitImageList parametresiyle üyeyi başlatır mask
ve ardından bu yapıyı Windows SDK'sında açıklanan BCM_GETSPLITINFO iletisine gönderir.
CButton::SetSplitInfo
Windows'un geçerli bölünmüş düğme denetimini nasıl çizdiğini belirleyen parametreleri belirtir.
BOOL SetSplitInfo(PBUTTON_SPLITINFO pInfo);
Parametreler
pInfo
[in] Geçerli bölünmüş düğme denetimini tanımlayan bir BUTTON_SPLITINFO yapısının işaretçisi.
Dönüş Değeri
Bu yöntem başarılı olursa TRUE; aksi takdirde YANLIŞ.
Açıklamalar
Bu yöntemi yalnızca düğme stili BS_SPLITBUTTON veya BS_DEFSPLITBUTTON olan denetimlerle kullanın.
Bu yöntem, Windows SDK'sında açıklanan BCM_SETSPLITINFO iletisini gönderir.
Örnek
İlk kod örneği, m_splitButton
bölünmüş düğme denetimine program aracılığıyla erişmek için kullanılan değişkenini tanımlar.
public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;
Sonraki kod örneği, bölünmüş düğme açılan oku için kullanılan karakteri değiştirir. Örnek, varsayılan aşağı işaret eden üçgen karakteri için yukarı işaret eden üçgen karakterin yerini alır. Görüntülenen karakter, yapının üyesinde belirttiğiniz karaktere himlGlyph
BUTTON_SPLITINFO
bağlıdır. Aşağı işaret eden üçgen karakteri '6' karakteriyle, yukarı işaret eden üçgen karakteri ise '5' karakteriyle belirtilir. Karşılaştırma için CButton::SetSplitGlyph kolaylık yöntemine bakın.
/*
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
Geçerli bölünmüş düğme denetiminin açılan bileşeninin sınırlayıcı dikdörtgenini ayarlar.
BOOL SetSplitSize(LPSIZE pSize);
Parametreler
pSize
[in] Sınırlayıcı dikdörtgeni açıklayan BIR BOYUT yapısının işaretçisi.
Dönüş Değeri
Bu yöntem başarılı olursa TRUE; aksi takdirde YANLIŞ.
Açıklamalar
Bu yöntemi yalnızca düğme stili BS_SPLITBUTTON veya BS_DEFSPLITBUTTON olan denetimlerle kullanın.
Bölünmüş düğme denetimi genişletildiğinde, liste denetimi veya çağrı cihazı denetimi gibi bir açılan bileşen görüntüleyebilir. Bu yöntem, açılan bileşeni içeren sınırlayıcı dikdörtgenin boyutunu belirtir.
Bu yöntem, BCSIF_SIZE bayrağıyla bir BUTTON_SPLITINFO yapısının üyesini size
ve pSize parametresine sahip üyeyi başlatır mask
ve ardından bu yapıyı Windows SDK'sında açıklanan BCM_GETSPLITINFO iletisine gönderir.
Örnek
İlk kod örneği, m_splitButton
bölünmüş düğme denetimine program aracılığıyla erişmek için kullanılan değişkenini tanımlar. Bu değişken aşağıdaki örnekte kullanılmıştır.
public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;
Sonraki kod örneği, bölünmüş düğme açılan okunun boyutunu ikiye katlar.
// 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
Geçerli bölünmüş düğme denetiminin stilini ayarlar.
BOOL SetSplitStyle(UINT uSplitStyle);
Parametreler
uSplitStyle
[in] Bölünmüş düğme stillerinin bit düzeyinde birleşimi. Daha fazla bilgi için bkzuSplitStyle
. BUTTON_SPLITINFO yapısının üyesi.
Dönüş Değeri
Bu yöntem başarılı olursa TRUE; aksi takdirde YANLIŞ.
Açıklamalar
Bu yöntemi yalnızca düğme stili BS_SPLITBUTTON veya BS_DEFSPLITBUTTON olan denetimlerle kullanın.
Bölünmüş düğme stilleri, Windows'un bölünmüş düğme simgesi çizdiği hizalamayı, en boy oranını ve grafik biçimini belirtir. Daha fazla bilgi için bkzuSplitStyle
. BUTTON_SPLITINFO yapısının üyesi.
Bu yöntem, BCSIF_STYLE bayrağıyla bir BUTTON_SPLITINFO yapısının uSplitStyle
üyesini ve uSplitStyle parametresine sahip üyeyi başlatır mask
ve ardından bu yapıyı Windows SDK'sında açıklanan BCM_GETSPLITINFO iletisine gönderir.
Örnek
İlk kod örneği, m_splitButton
bölünmüş düğme denetimine program aracılığıyla erişmek için kullanılan değişkenini tanımlar.
public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;
Sonraki kod örneği, bölünmüş düğme açılan okunun stilini ayarlar. BCSS_ALIGNLEFT stili, düğmenin sol tarafındaki oku görüntüler ve düğmeyi yeniden boyutlandırdığınızda BCSS_STRETCH stili açılan okun orantılarını korur.
/*
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
Düğme denetiminin vurgulanıp vurgulanmayacağını ayarlar.
void SetState(BOOL bHighlight);
Parametreler
bHighlight
Düğmenin vurgulanıp vurgulanmayacağını belirtir. Sıfır olmayan bir değer düğmeyi vurgular; 0 değeri tüm vurgulamaları kaldırır.
Açıklamalar
Vurgulama, düğme denetiminin dışını etkiler. Radyo düğmesinin veya onay kutusunun onay durumu üzerinde hiçbir etkisi yoktur.
Kullanıcı sol fare düğmesine tıkladığında ve tuttuğunda düğme denetimi otomatik olarak vurgulanır. Kullanıcı fare düğmesini serbest bıraktığında vurgulama kaldırılır.
Örnek
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
Nesnenin metin kenar boşluğunu ayarlamak için bu yöntemi çağırın CButton
.
BOOL SetTextMargin(RECT* pmargin);
Parametreler
pmargin
Yeni metin kenar boşluğuna bir işaretçi.
Dönüş Değeri
Başarılı olduğunda TRUE, hatada YANLIŞ döndürür.
Açıklamalar
Bu üye işlevi, Windows SDK'sının Düğmeler bölümünde açıklandığı gibi BCM_SETTEXTMARGIN iletisinin işlevselliğine öykünmektedir.
Ayrıca bkz.
CWnd Sınıfı
Hiyerarşi Grafiği
CWnd Sınıfı
CComboBox Sınıfı
CEdit Sınıfı
CListBox Sınıfı
CScrollBar Sınıfı
CStatic Sınıfı
CBitmapButton Sınıfı
CDialog Sınıfı