Bagikan melalui


Kelas CButton

Menyediakan fungsionalitas kontrol tombol Windows.

Sintaks

class CButton : public CWnd

Anggota

Konstruktor Publik

Nama Deskripsi
CButton::CButton Membuat CButton objek.

Metode Publik

Nama Deskripsi
CButton::Create Membuat kontrol tombol Windows dan melampirkannya ke CButton objek.
CButton::D rawItem Ambil alih untuk menggambar objek yang digambar CButton pemilik.
CButton::GetBitmap Mengambil handel bitmap yang sebelumnya diatur dengan SetBitmap.
CButton::GetButtonStyle Mengambil informasi tentang gaya kontrol tombol.
CButton::GetCheck Mengambil status pemeriksaan kontrol tombol.
CButton::GetCursor Mengambil handel gambar kursor yang sebelumnya diatur dengan SetCursor.
CButton::GetIcon Mengambil handel ikon yang sebelumnya diatur dengan SetIcon.
CButton::GetIdealSize Mengambil ukuran ideal kontrol tombol.
CButton::GetImageList Mengambil daftar gambar kontrol tombol.
CButton::GetNote Mengambil komponen catatan dari kontrol tautan perintah saat ini.
CButton::GetNoteLength Mengambil panjang teks catatan untuk kontrol tautan perintah saat ini.
CButton::GetSplitGlyph Mengambil glyph yang terkait dengan kontrol tombol pemisah saat ini.
CButton::GetSplitImageList Mengambil daftar gambar untuk kontrol tombol pemisah saat ini.
CButton::GetSplitInfo Mengambil informasi yang menentukan kontrol tombol pemisah saat ini.
CButton::GetSplitSize Mengambil persegi panjang pembatas dari komponen drop-down kontrol tombol terpisah saat ini.
CButton::GetSplitStyle Mengambil gaya tombol terpisah yang menentukan kontrol tombol terpisah saat ini.
CButton::GetState Mengambil status pemeriksaan, status sorotan, dan status fokus kontrol tombol.
CButton::GetTextMargin Mengambil margin teks kontrol tombol.
CButton::SetBitmap Menentukan bitmap yang akan ditampilkan pada tombol .
CButton::SetButtonStyle Mengubah gaya tombol.
CButton::SetCheck Mengatur status pemeriksaan kontrol tombol.
CButton::SetCursor Menentukan gambar kursor yang akan ditampilkan pada tombol.
CButton::SetDropDownState Mengatur status drop-down kontrol tombol pemisah saat ini.
CButton::SetIcon Menentukan ikon yang akan ditampilkan pada tombol.
CButton::SetImageList Mengatur daftar gambar kontrol tombol.
CButton::SetNote Mengatur catatan pada kontrol tautan perintah saat ini.
CButton::SetSplitGlyph Mengaitkan glyph tertentu dengan kontrol tombol pemisah saat ini.
CButton::SetSplitImageList Mengaitkan daftar gambar dengan kontrol tombol terpisah saat ini.
CButton::SetSplitInfo Menentukan informasi yang menentukan kontrol tombol pemisah saat ini.
CButton::SetSplitSize Mengatur persegi panjang pembatas dari komponen drop-down kontrol tombol pemisah saat ini.
CButton::SetSplitStyle Mengatur gaya kontrol tombol pemisah saat ini.
CButton::SetState Mengatur status penyorotan kontrol tombol.
CButton::SetTextMargin Mengatur margin teks kontrol tombol.

Keterangan

Kontrol tombol adalah jendela anak kecil persegi panjang yang dapat diklik dan dimatikan. Tombol dapat digunakan sendiri atau dalam grup dan dapat diberi label atau muncul tanpa teks. Tombol biasanya mengubah tampilan saat pengguna mengkliknya.

Tombol umum adalah kotak centang, tombol radio, dan tombol tekan. Objek CButton dapat menjadi salah satu dari ini, sesuai dengan gaya tombol yang ditentukan pada inisialisasinya oleh fungsi Buat anggota.

Selain itu, kelas CBitmapButton berasal dari CButton mendukung pembuatan kontrol tombol berlabel gambar bitmap alih-alih teks. Dapat CBitmapButton memiliki bitmap terpisah untuk status tombol atas, bawah, terfokus, dan dinonaktifkan.

Anda dapat membuat kontrol tombol baik dari templat dialog atau langsung di kode Anda. Dalam kedua kasus, pertama-tama panggil konstruktor CButton untuk membangun CButton objek; lalu panggil Create fungsi anggota untuk membuat kontrol tombol Windows dan melampirkannya ke CButton objek.

Konstruksi dapat menjadi proses satu langkah di kelas yang berasal dari CButton. Tulis konstruktor untuk kelas turunan dan panggil Create dari dalam konstruktor.

Jika Anda ingin menangani pesan pemberitahuan Windows yang dikirim oleh kontrol tombol ke induknya (biasanya kelas yang berasal dari CDialog), tambahkan entri peta pesan dan fungsi anggota pengelola pesan ke kelas induk untuk setiap pesan.

Setiap entri peta pesan mengambil formulir berikut:

ON_Notification ( id, memberFxn )

di mana id menentukan ID jendela anak kontrol yang mengirim pemberitahuan dan memberFxn adalah nama fungsi anggota induk yang telah Anda tulis untuk menangani pemberitahuan.

Prototipe fungsi induk adalah sebagai berikut:

afx_msg void memberFxn();

Entri peta pesan potensial adalah sebagai berikut:

Entri peta Dikirim ke induk ketika...
ON_BN_CLICKED Pengguna mengklik tombol.
ON_BN_DOUBLECLICKED Pengguna mengklik dua kali tombol.

Jika Anda membuat CButton objek dari sumber daya dialog, CButton objek akan dihancurkan secara otomatis saat pengguna menutup kotak dialog.

Jika Anda membuat CButton objek di dalam jendela, Anda mungkin perlu menghancurkannya. Jika Anda membuat CButton objek pada tumpukan dengan menggunakan new fungsi , Anda harus memanggil delete pada objek untuk menghancurkannya ketika pengguna menutup kontrol tombol Windows. Jika Anda membuat CButton objek pada tumpukan, atau disematkan di objek dialog induk, objek tersebut akan dihancurkan secara otomatis.

Hierarki Warisan

CObject

CCmdTarget

CWnd

CButton

Persyaratan

Header: afxwin.h

CButton::CButton

Membuat CButton objek.

CButton();

Contoh

// Declare a button object.
CButton myButton;

CButton::Create

Membuat kontrol tombol Windows dan melampirkannya ke CButton objek.

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

Parameter

lpszCaption
Menentukan teks kontrol tombol.

dwStyle
Menentukan gaya kontrol tombol. Terapkan kombinasi gaya tombol apa pun ke tombol .

rect
Menentukan ukuran dan posisi kontrol tombol. Ini bisa berupa CRect objek atau RECT struktur.

pParentWnd
Menentukan jendela induk kontrol tombol, biasanya .CDialog Ini tidak boleh NULL.

Nid
Menentukan ID kontrol tombol.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Anda membuat CButton objek dalam dua langkah. Pertama, panggil konstruktor lalu panggil Create, yang membuat kontrol tombol Windows dan melampirkannya ke CButton objek.

Jika gaya WS_VISIBLE diberikan, Windows akan mengirim tombol mengontrol semua pesan yang diperlukan untuk mengaktifkan dan menampilkan tombol.

Terapkan gaya jendela berikut ke kontrol tombol:

  • WS_CHILD Always

  • WS_VISIBLE Biasanya

  • WS_DISABLED Jarang

  • kontrol WS_GROUP Ke grup

  • WS_TABSTOP Untuk menyertakan tombol dalam urutan tab

Contoh

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

Dipanggil oleh kerangka kerja ketika aspek visual tombol yang digambar pemilik telah berubah.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Parameter

lpDrawItemStruct
Pointer panjang ke struktur DRAWITEMSTRUCT . Struktur berisi informasi tentang item yang akan digambar dan jenis gambar yang diperlukan.

Keterangan

Tombol yang digambar pemilik memiliki kumpulan gaya BS_OWNERDRAW. Ambil alih fungsi anggota ini untuk mengimplementasikan gambar untuk objek yang digambar CButton pemilik. Aplikasi harus memulihkan semua objek antarmuka perangkat grafis (GDI) yang dipilih untuk konteks tampilan yang disediakan dalam lpDrawItemStruct sebelum fungsi anggota berakhir.

Lihat juga nilai gaya BS_.

Contoh

// 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

Panggil fungsi anggota ini untuk mendapatkan handel bitmap, yang sebelumnya diatur dengan SetBitmap, yang terkait dengan tombol.

HBITMAP GetBitmap() const;

Tampilkan Nilai

Handel ke bitmap. NULL jika sebelumnya tidak ada bitmap yang ditentukan.

Contoh

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

Mengambil informasi tentang gaya kontrol tombol.

UINT GetButtonStyle() const;

Tampilkan Nilai

Mengembalikan gaya tombol untuk objek ini CButton . Fungsi ini hanya mengembalikan nilai gaya BS_ , bukan gaya jendela lainnya.

Contoh

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

Mengambil status centang tombol radio atau kotak centang.

int GetCheck() const;

Tampilkan Nilai

Nilai pengembalian dari kontrol tombol yang dibuat dengan gaya BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON, atau BS_3STATE adalah salah satu nilai berikut:

Nilai Makna
BST_UNCHECKED Status tombol tidak dicentang.
BST_CHECKED Status tombol dicentang.
BST_INDETERMINATE Status tombol tidak ditentukan (hanya berlaku jika tombol memiliki gaya BS_3STATE atau BS_AUTO3STATE).

Jika tombol memiliki gaya lain, nilai yang dikembalikan adalah BST_UNCHECKED.

Contoh

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

Panggil fungsi anggota ini untuk mendapatkan handel kursor, yang sebelumnya diatur dengan SetCursor, yang terkait dengan tombol.

HCURSOR GetCursor();

Tampilkan Nilai

Handel ke gambar kursor. NULL jika tidak ada kursor yang ditentukan sebelumnya.

Contoh

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

Panggil fungsi anggota ini untuk mendapatkan handel ikon, yang sebelumnya diatur dengan SetIcon, yang terkait dengan tombol.

HICON GetIcon() const;

Tampilkan Nilai

Handel ke ikon. NULL jika tidak ada ikon yang ditentukan sebelumnya.

Contoh

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

Mengambil ukuran ideal untuk kontrol tombol.

BOOL GetIdealSize(SIZE* psize);

Parameter

psize
Penunjuk ke ukuran tombol saat ini.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Fungsi anggota ini menimulasi fungsionalitas pesan BCM_GETIDEALSIZE, seperti yang dijelaskan di bagian Tombol dari Windows SDK.

CButton::GetImageList

Panggil metode ini untuk mendapatkan daftar gambar dari kontrol tombol.

BOOL GetImageList(PBUTTON_IMAGELIST pbuttonImagelist);

Parameter

pbuttonImagelist
Penunjuk ke daftar CButton gambar objek.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Fungsi anggota ini menimulasi fungsionalitas pesan BCM_GETIMAGELIST, seperti yang dijelaskan di bagian Tombol dari Windows SDK.

CButton::GetNote

Mengambil teks catatan yang terkait dengan kontrol tautan perintah saat ini.

CString GetNote() const;

BOOL GetNote(
    LPTSTR lpszNote,
    UINT* cchNote) const;

Parameter

lpszNote
[out] Pointer ke buffer, yang bertanggung jawab pemanggil untuk mengalokasikan dan membatalkan alokasi. Jika nilai yang dikembalikan adalah TRUE, buffer berisi teks catatan yang terkait dengan kontrol tautan perintah saat ini; jika tidak, buffer tidak berubah.

cchNote
[masuk, keluar] Penunjuk ke variabel bilangan bulat yang tidak ditandatangani. Ketika metode ini dipanggil, variabel berisi ukuran buffer yang ditentukan oleh parameter lpszNote . Ketika metode ini kembali, jika nilai yang dikembalikan adalah TRUE, variabel berisi ukuran catatan yang terkait dengan kontrol tautan perintah saat ini. Jika nilai yang dikembalikan adalah FALSE, variabel berisi ukuran buffer yang diperlukan untuk berisi catatan.

Tampilkan Nilai

Pada kelebihan beban pertama, objek CString yang berisi teks catatan yang terkait dengan kontrol tautan perintah saat ini.

-atau-

Pada kelebihan beban kedua, TRUE jika metode ini berhasil; jika tidak, FALSE.

Keterangan

Gunakan metode ini hanya dengan kontrol yang gaya tombolnya BS_COMMANDLINK atau BS_DEFCOMMANDLINK.

Metode ini mengirim pesan BCM_GETNOTE , yang dijelaskan dalam Windows SDK.

CButton::GetNoteLength

Mengambil panjang teks catatan untuk kontrol tautan perintah saat ini.

UINT GetNoteLength() const;

Tampilkan Nilai

Panjang teks catatan, dalam karakter Unicode 16-bit, untuk kontrol tautan perintah saat ini.

Keterangan

Gunakan metode ini hanya dengan kontrol yang gaya tombolnya BS_COMMANDLINK atau BS_DEFCOMMANDLINK.

Metode ini mengirim pesan BCM_GETNOTELENGTH , yang dijelaskan dalam Windows SDK.

CButton::GetSplitGlyph

Mengambil glyph yang terkait dengan kontrol tombol pemisah saat ini.

TCHAR GetSplitGlyph() const;

Tampilkan Nilai

Karakter glyph yang terkait dengan kontrol tombol pemisah saat ini.

Keterangan

Glyph adalah representasi fisik karakter dalam font tertentu. Misalnya, kontrol tombol terpisah mungkin dihiasi dengan glyph karakter tanda centang Unicode (U+2713).

Gunakan metode ini hanya dengan kontrol yang gaya tombolnya BS_SPLITBUTTON atau BS_DEFSPLITBUTTON.

Metode ini menginisialisasi mask anggota struktur BUTTON_SPLITINFO dengan bendera BCSIF_GLYPH, lalu mengirim struktur tersebut dalam pesan BCM_GETSPLITINFO yang dijelaskan di Windows SDK. Ketika fungsi pesan kembali, metode ini mengambil glyph dari himlGlyph anggota struktur.

CButton::GetSplitImageList

Mengambil daftar gambar untuk kontrol tombol pemisah saat ini.

CImageList* GetSplitImageList() const;

Tampilkan Nilai

Penunjuk ke objek CImageList .

Keterangan

Gunakan metode ini hanya dengan kontrol yang gaya tombolnya BS_SPLITBUTTON atau BS_DEFSPLITBUTTON.

Metode ini menginisialisasi mask anggota struktur BUTTON_SPLITINFO dengan bendera BCSIF_IMAGE, lalu mengirim struktur tersebut dalam pesan BCM_GETSPLITINFO yang dijelaskan di Windows SDK. Saat fungsi pesan kembali, metode ini mengambil daftar gambar dari himlGlyph anggota struktur.

CButton::GetSplitInfo

Mengambil parameter yang menentukan bagaimana Windows menggambar kontrol tombol pemisah saat ini.

BOOL GetSplitInfo(PBUTTON_SPLITINFO pInfo) const;

Parameter

pInfo
[out] Penunjuk ke struktur BUTTON_SPLITINFO yang menerima informasi tentang kontrol tombol terpisah saat ini. Pemanggil bertanggung jawab untuk mengalokasikan struktur.

Tampilkan Nilai

TRUE jika metode ini berhasil; jika tidak, FALSE.

Keterangan

Gunakan metode ini hanya dengan kontrol yang gaya tombolnya BS_SPLITBUTTON atau BS_DEFSPLITBUTTON.

Metode ini mengirim pesan BCM_GETSPLITINFO , yang dijelaskan dalam Windows SDK.

CButton::GetSplitSize

Mengambil persegi panjang pembatas dari komponen drop-down kontrol tombol terpisah saat ini.

BOOL GetSplitSize(LPSIZE pSize) const;

Parameter

pSize
[out] Penunjuk ke struktur SIZE yang menerima deskripsi persegi panjang.

Tampilkan Nilai

TRUE jika metode ini berhasil; jika tidak, FALSE.

Keterangan

Gunakan metode ini hanya dengan kontrol yang gaya tombolnya BS_SPLITBUTTON atau BS_DEFSPLITBUTTON.

Saat kontrol tombol terpisah diperluas, kontrol tombol dapat menampilkan komponen drop-down seperti kontrol daftar atau kontrol pager. Metode ini mengambil persegi panjang pembatas yang berisi komponen drop-down.

Metode ini menginisialisasi mask anggota struktur BUTTON_SPLITINFO dengan bendera BCSIF_SIZE, lalu mengirim struktur tersebut dalam pesan BCM_GETSPLITINFO yang dijelaskan di Windows SDK. Ketika fungsi pesan kembali, metode ini mengambil persegi panjang pembatas dari size anggota struktur.

CButton::GetSplitStyle

Mengambil gaya tombol terpisah yang menentukan kontrol tombol terpisah saat ini.

UINT GetSplitStyle() const;

Tampilkan Nilai

Kombinasi bitwise dari gaya tombol terpisah. Untuk informasi selengkapnya, lihat uSplitStyle anggota struktur BUTTON_SPLITINFO .

Keterangan

Gunakan metode ini hanya dengan kontrol yang gaya tombolnya BS_SPLITBUTTON atau BS_DEFSPLITBUTTON.

Gaya tombol terpisah menentukan perataan, rasio aspek, dan format grafis yang dengannya Windows menggambar ikon tombol terpisah.

Metode ini menginisialisasi mask anggota struktur BUTTON_SPLITINFO dengan bendera BCSIF_STYLE, lalu mengirim struktur tersebut dalam pesan BCM_GETSPLITINFO yang dijelaskan di Windows SDK. Saat fungsi pesan kembali, metode ini mengambil gaya tombol terpisah dari uSplitStyle anggota struktur.

CButton::GetState

Mengambil status kontrol tombol.

UINT GetState() const;

Tampilkan Nilai

Bidang bit yang berisi kombinasi nilai yang menunjukkan status kontrol tombol saat ini. Tabel berikut ini mencantumkan nilai yang mungkin.

Status Tombol Nilai Deskripsi
BST_UNCHECKED 0x0000 Status awal.
BST_CHECKED 0x0001 Kontrol tombol dicentang.
BST_INDETERMINATE 0x0002 Status tidak ditentukan (hanya mungkin ketika kontrol tombol memiliki tiga status).
BST_PUSHED 0x0004 Kontrol tombol ditekan.
BST_FOCUS 0x0008 Kontrol tombol memiliki fokus.

Keterangan

Kontrol tombol dengan gaya tombol BS_3STATE atau BS_AUTO3STATE membuat kotak centang yang memiliki status ketiga yang diberi nama status tidak ditentukan. Status tidak ditentukan menunjukkan bahwa kotak centang tidak dicentang atau tidak dicentang.

Contoh

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

Panggil metode ini untuk mendapatkan margin CButton teks objek.

BOOL GetTextMargin(RECT* pmargin);

Parameter

pmargin
Penunjuk ke margin CButton teks objek.

Tampilkan Nilai

Mengembalikan margin teks. Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Fungsi anggota ini menimulasi fungsionalitas pesan BCM_GETTEXTMARGIN, seperti yang dijelaskan di bagian Tombol dari Windows SDK.

CButton::SetBitmap

Panggil fungsi anggota ini untuk mengaitkan bitmap baru dengan tombol .

HBITMAP SetBitmap(HBITMAP hBitmap);

Parameter

hBitmap
Handel bitmap.

Tampilkan Nilai

Handel bitmap yang sebelumnya terkait dengan tombol .

Keterangan

Bitmap akan secara otomatis ditempatkan pada wajah tombol, dipusatkan secara default. Jika bitmap terlalu besar untuk tombol, bitmap akan dipotong di kedua sisi. Anda dapat memilih opsi perataan lainnya, termasuk yang berikut ini:

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

Tidak seperti CBitmapButton, yang menggunakan empat bitmap per tombol, SetBitmap hanya menggunakan satu bitmap per tombol. Ketika tombol ditekan, bitmap tampaknya bergeser ke bawah dan ke kanan.

Anda bertanggung jawab untuk melepaskan bitmap ketika Anda selesai dengannya.

Contoh

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

Mengubah gaya tombol.

void SetButtonStyle(
    UINT nStyle,
    BOOL bRedraw = TRUE);

Parameter

nStyle
Menentukan gaya tombol.

bRedraw
Menentukan apakah tombol akan digambar ulang. Nilai bukan nol menguras ulang tombol. Nilai 0 tidak menggambar ulang tombol. Tombol digambar ulang secara default.

Keterangan

GetButtonStyle Gunakan fungsi anggota untuk mengambil gaya tombol. Kata berurutan rendah dari gaya tombol lengkap adalah gaya khusus tombol.

Contoh

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

Mengatur atau mengatur ulang status centang tombol radio atau kotak centang.

void SetCheck(int nCheck);

Parameter

nCheck
Menentukan status pemeriksaan. Parameter ini dapat jadi dari salah satu berikut:

Nilai Makna
BST_UNCHECKED Atur status tombol untuk tidak dicentang.
BST_CHECKED Atur status tombol untuk dicentang.
BST_INDETERMINATE Atur status tombol menjadi tidak ditentukan. Nilai ini hanya dapat digunakan jika tombol memiliki gaya BS_3STATE atau BS_AUTO3STATE.

Keterangan

Fungsi anggota ini tidak berpengaruh pada tombol dorong.

Contoh

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

Panggil fungsi anggota ini untuk mengaitkan kursor baru dengan tombol .

HCURSOR SetCursor(HCURSOR hCursor);

Parameter

hCursor
Handel kursor.

Tampilkan Nilai

Handel kursor yang sebelumnya terkait dengan tombol .

Keterangan

Kursor akan secara otomatis ditempatkan di wajah tombol, di tengah secara default. Jika kursor terlalu besar untuk tombol , kursor akan dipotong di kedua sisi. Anda dapat memilih opsi perataan lainnya, termasuk yang berikut ini:

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

Tidak seperti CBitmapButton, yang menggunakan empat bitmap per tombol, SetCursor hanya menggunakan satu kursor per tombol. Saat tombol ditekan, kursor tampak bergeser ke bawah dan ke kanan.

Contoh

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

Mengatur status drop-down kontrol tombol pemisah saat ini.

BOOL SetDropDownState(BOOL fDropDown);

Parameter

fDropDown
[di] TRUE untuk mengatur status BST_DROPDOWNPUSHED; jika tidak, FALSE.

Tampilkan Nilai

TRUE jika metode ini berhasil; jika tidak, FALSE.

Keterangan

Kontrol tombol terpisah memiliki gaya BS_SPLITBUTTON atau BS_DEFSPLITBUTTON dan terdiri dari tombol dan panah drop-down di sebelah kanannya. Untuk informasi selengkapnya, lihat Gaya Tombol. Biasanya, status drop-down diatur saat pengguna mengklik panah drop-down. Gunakan metode ini untuk mengatur status drop-down kontrol secara terprogram. Panah drop-down digambar berbayang untuk menunjukkan status.

Metode ini mengirim pesan BCM_SETDROPDOWNSTATE , yang dijelaskan dalam Windows SDK.

Contoh

Contoh kode pertama mendefinisikan variabel, m_splitButton, yang digunakan untuk mengakses kontrol tombol terpisah secara terprogram. Variabel ini digunakan dalam contoh berikut.

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

Contoh kode berikutnya mengatur status kontrol tombol pisahkan untuk menunjukkan bahwa panah drop-down didorong.

/* 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

Mengatur status kontrol tombol saat ini ke elevation required, yang diperlukan agar kontrol menampilkan ikon keamanan yang ditingkatkan.

BOOL SetElevationRequired(BOOL fElevationRequired);

Parameter

fElevationRequired
[di] TRUE untuk mengatur elevation required status; jika tidak, FALSE.

Tampilkan Nilai

TRUE jika metode ini berhasil; jika tidak, FALSE.

Keterangan

Jika tombol atau kontrol tautan perintah memerlukan izin keamanan yang ditingkatkan untuk melakukan tindakan, atur kontrol ke elevation required status. Selanjutnya, Windows menampilkan ikon perisai Kontrol Akun Pengguna (UAC) pada kontrol. Untuk informasi selengkapnya, lihat Kontrol Akun Pengguna.

Metode ini mengirim pesan BCM_SETSHIELD , yang dijelaskan di Windows SDK.

CButton::SetIcon

Panggil fungsi anggota ini untuk mengaitkan ikon baru dengan tombol .

HICON SetIcon(HICON hIcon);

Parameter

hIcon
Handel ikon.

Tampilkan Nilai

Handel ikon yang sebelumnya terkait dengan tombol .

Keterangan

Ikon akan secara otomatis ditempatkan di wajah tombol, di tengah secara default. Jika ikon terlalu besar untuk tombol, ikon tersebut akan dipotong di kedua sisi. Anda dapat memilih opsi perataan lainnya, termasuk yang berikut ini:

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

Tidak seperti CBitmapButton, yang menggunakan empat bitmap per tombol, SetIcon hanya menggunakan satu ikon per tombol. Saat tombol ditekan, ikon tampak bergeser ke bawah dan ke kanan.

Contoh

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

Panggil metode ini untuk mengatur daftar CButton gambar objek.

BOOL SetImageList(PBUTTON_IMAGELIST pbuttonImagelist);

Parameter

pbuttonImagelist
Penunjuk ke daftar gambar baru.

Tampilkan Nilai

Mengembalikan TRUE pada keberhasilan, FALSE pada kegagalan.

Keterangan

Fungsi anggota ini menimulasi fungsionalitas pesan BCM_SETIMAGELIST, seperti yang dijelaskan di bagian Tombol dari Windows SDK.

CButton::SetNote

Mengatur teks catatan untuk kontrol tautan perintah saat ini.

BOOL SetNote(LPCTSTR lpszNote);

Parameter

lpszNote
[di] Penunjuk ke string Unicode yang diatur sebagai teks catatan untuk kontrol tautan perintah.

Tampilkan Nilai

TRUE jika metode ini berhasil; jika tidak, FALSE.

Keterangan

Gunakan metode ini hanya dengan kontrol yang gaya tombolnya BS_COMMANDLINK atau BS_DEFCOMMANDLINK.

Metode ini mengirim pesan BCM_SETNOTE , yang dijelaskan dalam Windows SDK.

Contoh

Contoh kode pertama mendefinisikan variabel, m_cmdLink, yang digunakan untuk mengakses kontrol tautan perintah secara terprogram. Variabel ini digunakan dalam contoh berikut.

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

Contoh kode berikutnya mengatur teks catatan untuk kontrol tautan perintah.

// Set the command link text.
m_cmdLink.SetNote(_T("This is the command link note."));

CButton::SetSplitGlyph

Mengaitkan glyph tertentu dengan kontrol tombol pemisah saat ini.

BOOL SetSplitGlyph(TCHAR chGlyph);

Parameter

chGlyph
[di] Karakter yang menentukan glyph yang akan digunakan sebagai panah drop-down tombol pisahkan.

Tampilkan Nilai

TRUE jika metode ini berhasil; jika tidak, FALSE.

Keterangan

Gunakan metode ini hanya dengan kontrol yang memiliki gaya tombol BS_SPLITBUTTON atau BS_DEFSPLITBUTTON.

Glyph adalah representasi fisik karakter dalam font tertentu. Parameter chGlyph tidak digunakan sebagai glyph, tetapi digunakan untuk memilih glyph dari sekumpulan glyph yang ditentukan sistem. Glyph panah drop-down default ditentukan oleh karakter '6', dan menyerupai karakter Unicode BLACK DOWN-POINTING TRIANGLE (U+25BC).

Metode ini menginisialisasi mask anggota struktur BUTTON_SPLITINFO dengan bendera BCSIF_GLYPH dan himlGlyph anggota dengan parameter chGlyph , lalu mengirim struktur tersebut dalam pesan BCM_GETSPLITINFO yang dijelaskan di Windows SDK.

CButton::SetSplitImageList

Mengaitkan daftar gambar dengan kontrol tombol terpisah saat ini.

BOOL SetSplitImageList(CImageList* pSplitImageList);

Parameter

pSplitImageList
[di] Penunjuk ke objek CImageList untuk ditetapkan ke kontrol tombol terpisah saat ini.

Tampilkan Nilai

TRUE jika metode ini berhasil; jika tidak, FALSE.

Keterangan

Gunakan metode ini hanya dengan kontrol yang gaya tombolnya BS_SPLITBUTTON atau BS_DEFSPLITBUTTON.

Metode ini menginisialisasi mask anggota struktur BUTTON_SPLITINFO dengan bendera BCSIF_IMAGE dan himlGlyph anggota dengan parameter pSplitImageList , lalu mengirim struktur tersebut dalam pesan BCM_GETSPLITINFO yang dijelaskan di Windows SDK.

CButton::SetSplitInfo

Menentukan parameter yang menentukan bagaimana Windows menggambar kontrol tombol pemisah saat ini.

BOOL SetSplitInfo(PBUTTON_SPLITINFO pInfo);

Parameter

pInfo
[di] Penunjuk ke struktur BUTTON_SPLITINFO yang menentukan kontrol tombol terpisah saat ini.

Tampilkan Nilai

TRUE jika metode ini berhasil; jika tidak, FALSE.

Keterangan

Gunakan metode ini hanya dengan kontrol yang gaya tombolnya BS_SPLITBUTTON atau BS_DEFSPLITBUTTON.

Metode ini mengirim pesan BCM_SETSPLITINFO , yang dijelaskan dalam Windows SDK.

Contoh

Contoh kode pertama mendefinisikan variabel, m_splitButton, yang digunakan untuk mengakses kontrol tombol terpisah secara terprogram.

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

Contoh kode berikutnya mengubah glyph yang digunakan untuk panah drop-down tombol pisahkan. Contoh menggantikan glyph segitiga yang menunjuk ke atas untuk glyph segitiga menurun default. Glyph yang ditampilkan tergantung pada karakter yang Anda tentukan dalam himlGlyph anggota BUTTON_SPLITINFO struktur. Glyph segitiga down-pointing ditentukan oleh karakter '6' dan glyph segitiga up-pointing ditentukan oleh karakter '5'. Sebagai perbandingan, lihat metode kenyamanan, CButton::SetSplitGlyph.

/* 
   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

Mengatur persegi panjang pembatas dari komponen drop-down kontrol tombol pemisah saat ini.

BOOL SetSplitSize(LPSIZE pSize);

Parameter

pSize
[di] Penunjuk ke struktur SIZE yang menjelaskan persegi panjang pembatas.

Tampilkan Nilai

TRUE jika metode ini berhasil; jika tidak, FALSE.

Keterangan

Gunakan metode ini hanya dengan kontrol yang gaya tombolnya BS_SPLITBUTTON atau BS_DEFSPLITBUTTON.

Saat kontrol tombol terpisah diperluas, kontrol tombol dapat menampilkan komponen drop-down seperti kontrol daftar atau kontrol pager. Metode ini menentukan ukuran persegi panjang pembatas yang berisi komponen drop-down.

Metode ini menginisialisasi mask anggota struktur BUTTON_SPLITINFO dengan bendera BCSIF_SIZE dan size anggota dengan parameter pSize , lalu mengirim struktur tersebut dalam pesan BCM_GETSPLITINFO yang dijelaskan di Windows SDK.

Contoh

Contoh kode pertama mendefinisikan variabel, m_splitButton, yang digunakan untuk mengakses kontrol tombol terpisah secara terprogram. Variabel ini digunakan dalam contoh berikut.

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

Contoh kode berikutnya menggandakan ukuran panah drop-down tombol pemisah.

// 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

Mengatur gaya kontrol tombol pemisah saat ini.

BOOL SetSplitStyle(UINT uSplitStyle);

Parameter

uSplitStyle
[di] Kombinasi bitwise dari gaya tombol terpisah. Untuk informasi selengkapnya, lihat uSplitStyle anggota struktur BUTTON_SPLITINFO .

Tampilkan Nilai

TRUE jika metode ini berhasil; jika tidak, FALSE.

Keterangan

Gunakan metode ini hanya dengan kontrol yang gaya tombolnya BS_SPLITBUTTON atau BS_DEFSPLITBUTTON.

Gaya tombol terpisah menentukan perataan, rasio aspek, dan format grafis yang dengannya Windows menggambar ikon tombol terpisah. Untuk informasi selengkapnya, lihat uSplitStyle anggota struktur BUTTON_SPLITINFO .

Metode ini menginisialisasi mask anggota struktur BUTTON_SPLITINFO dengan bendera BCSIF_STYLE dan uSplitStyle anggota dengan parameter uSplitStyle , lalu mengirim struktur tersebut dalam pesan BCM_GETSPLITINFO yang dijelaskan di Windows SDK.

Contoh

Contoh kode pertama mendefinisikan variabel, m_splitButton, yang digunakan untuk mengakses kontrol tombol terpisah secara terprogram.

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

Contoh kode berikutnya mengatur gaya panah drop-down tombol pisahkan. Gaya BCSS_ALIGNLEFT menampilkan panah di sisi kiri tombol, dan gaya BCSS_STRETCH mempertahankan proporsi panah turun bawah saat Anda mengubah ukuran tombol.

/* 
    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

Mengatur apakah kontrol tombol disorot atau tidak.

void SetState(BOOL bHighlight);

Parameter

bHighlight
Menentukan apakah tombol akan disorot. Nilai bukan nol menyoroti tombol; nilai 0 menghapus penyorotan apa pun.

Keterangan

Penyorotan memengaruhi eksterior kontrol tombol. Ini tidak berpengaruh pada status centang tombol radio atau kotak centang.

Kontrol tombol secara otomatis disorot ketika pengguna mengklik dan menahan tombol mouse kiri. Penyorotan dihapus ketika pengguna melepaskan tombol mouse.

Contoh

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

Panggil metode ini untuk mengatur margin CButton teks objek.

BOOL SetTextMargin(RECT* pmargin);

Parameter

pmargin
Penunjuk ke margin teks baru.

Tampilkan Nilai

Mengembalikan TRUE pada keberhasilan, FALSE pada kegagalan.

Keterangan

Fungsi anggota ini menimulasi fungsionalitas pesan BCM_SETTEXTMARGIN, seperti yang dijelaskan di bagian Tombol dari Windows SDK.

Lihat juga

Kelas CWnd
Bagan Hierarki
Kelas CWnd
Kelas CComboBox
Kelas CEdit
Kelas CListBox
Kelas CScrollBar
Kelas CStatic
Kelas CBitmapButton
Kelas CDialog