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