Bagikan melalui


Kelas CBitmapButton

Membuat kontrol tombol dorong berlabel gambar bitmapped alih-alih teks.

Sintaks

class CBitmapButton : public CButton

Anggota

Konstruktor Publik

Nama Deskripsi
CBitmapButton::CBitmapButton Membuat CBitmapButton objek.

Metode Publik

Nama Deskripsi
CBitmapButton::AutoLoad Mengaitkan tombol dalam kotak dialog dengan objek CBitmapButton kelas, memuat bitmap berdasarkan nama, dan mengukur tombol agar pas dengan bitmap.
CBitmapButton::LoadBitmaps Menginisialisasi objek dengan memuat satu atau beberapa sumber daya bitmap bernama dari file sumber daya aplikasi dan melampirkan bitmap ke objek.
CBitmapButton::SizeToContent Mengukur tombol untuk mengakomodasi bitmap.

Keterangan

CBitmapButton objek berisi hingga empat bitmap, yang berisi gambar untuk berbagai status yang dapat diasumsikan tombol: naik (atau normal), bawah (atau dipilih), difokuskan, dan dinonaktifkan. Hanya bitmap pertama yang diperlukan; yang lain bersifat opsional.

Gambar bitmap-button mencakup batas di sekitar gambar serta gambar itu sendiri. Batas biasanya memainkan peran dalam menampilkan status tombol. Misalnya, bitmap untuk status terfokus biasanya seperti bitmap untuk status atas tetapi dengan inset persegi panjang putus-putus dari batas atau garis tebal padat di perbatasan. Bitmap untuk status dinonaktifkan biasanya menyerupi yang untuk status atas tetapi memiliki kontras yang lebih rendah (seperti pilihan menu redup atau abu-abu).

Bitmap ini bisa dalam ukuran apa pun, tetapi semua diperlakukan seolah-olah ukurannya sama dengan bitmap untuk status atas.

Berbagai aplikasi menuntut kombinasi gambar bitmap yang berbeda:

Naik Turun Terfokus Nonaktif Aplikasi
× Bitmap
× × Tombol tanpa gaya WS_TABSTOP
× × × × Tombol dialog dengan semua status
× × × Tombol dialog dengan gaya WS_TABSTOP

Saat membuat kontrol tombol bitmap, atur gaya BS_OWNERDRAW untuk menentukan bahwa tombol digambar pemilik. Ini menyebabkan Windows mengirim pesan WM_MEASUREITEM dan WM_DRAWITEM untuk tombol; kerangka kerja menangani pesan-pesan ini dan mengelola tampilan tombol untuk Anda.

Untuk membuat kontrol tombol bitmap di area klien jendela

  1. Buat satu hingga empat gambar bitmap untuk tombol .

  2. Buat objek CBitmapButton .

  3. Panggil fungsi Buat untuk membuat kontrol tombol Windows dan melampirkannya ke CBitmapButton objek.

  4. Panggil fungsi anggota LoadBitmaps untuk memuat sumber daya bitmap setelah tombol bitmap dibuat.

Untuk menyertakan kontrol tombol bitmap dalam kotak dialog

  1. Buat satu hingga empat gambar bitmap untuk tombol .

  2. Buat templat dialog dengan tombol gambar pemilik diposisikan di mana Anda menginginkan tombol bitmap. Ukuran tombol dalam templat tidak masalah.

  3. Atur keterangan tombol ke nilai seperti "MYIMAGE" dan tentukan simbol untuk tombol seperti IDC_MYIMAGE.

  4. Dalam skrip sumber daya aplikasi Anda, berikan setiap gambar yang dibuat untuk tombol ID yang dibangun dengan menambahkan salah satu huruf "U," "D," "F," atau "X" (untuk atas, bawah, fokus, dan dinonaktifkan) ke string yang digunakan untuk keterangan tombol di langkah 3. Untuk keterangan tombol " MYIMAGE," misalnya, ID akan menjadi " MYIMAGEU," " MYIMAGED," " MYIMAGEF," dan " MYIMAGEX." Anda harus menentukan ID bitmap Anda dalam tanda kutip ganda. Jika tidak, editor sumber daya akan menetapkan bilangan bulat ke sumber daya dan MFC akan gagal saat memuat gambar.

  5. Di kelas dialog aplikasi Anda (berasal dari CDialog), tambahkan CBitmapButton objek anggota.

  6. CDialog Dalam rutinitas OnInitDialog objek, panggil CBitmapButton fungsi AutoLoad objek, menggunakan sebagai parameter ID kontrol tombol dan CDialog penunjuk objekthis.

Jika Anda ingin menangani pesan pemberitahuan Windows, seperti BN_CLICKED, dikirim oleh kontrol tombol bitmap ke induknya (biasanya kelas berasal dari CDialog), tambahkan ke CDialogobjek -turunan entri peta pesan dan fungsi anggota penanganan pesan untuk setiap pesan. Pemberitahuan yang CBitmapButton dikirim oleh objek sama dengan yang dikirim oleh objek CButton .

CToolBar kelas mengambil pendekatan yang berbeda untuk tombol bitmap.

Untuk informasi selengkapnya tentang CBitmapButton, lihat Kontrol.

Hierarki Warisan

CObject

CCmdTarget

CWnd

CButton

CBitmapButton

Persyaratan

Header: afxext.h

CBitmapButton::AutoLoad

Mengaitkan tombol dalam kotak dialog dengan objek CBitmapButton kelas, memuat bitmap berdasarkan nama, dan mengukur tombol agar pas dengan bitmap.

BOOL AutoLoad(
    UINT nID,
    CWnd* pParent);

Parameter

Nid
ID kontrol tombol.

pParent
Arahkan ke objek yang memiliki tombol .

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

AutoLoad Gunakan fungsi untuk menginisialisasi tombol gambar pemilik dalam kotak dialog sebagai tombol bitmap. Instruksi untuk menggunakan fungsi ini ada dalam keterangan untuk CBitmapButton kelas .

Contoh

CBitmapButton myButton;

// Initialize the owner-drawn button with the id IDC_MYBUTTON as a bitmap
// button. This code is used in the OnInitDialog handler of my dialog.
myButton.AutoLoad(IDC_MYBUTTON, this);

CBitmapButton::CBitmapButton

CBitmapButton Membuat objek.

CBitmapButton();

Keterangan

Setelah membuat objek C++ CBitmapButton , panggil CButton::Create untuk membuat kontrol tombol Windows dan melampirkannya ke CBitmapButton objek.

Contoh

// Declare a bitmap button object on the stack.
CBitmapButton myButton;

// Declare a bitmap button object on the heap.
CBitmapButton *pmyButton = new CBitmapButton;

CBitmapButton::LoadBitmaps

Gunakan fungsi ini saat Anda ingin memuat gambar bitmap yang diidentifikasi oleh nama sumber daya atau nomor ID mereka, atau ketika Anda tidak dapat menggunakan fungsi karena AutoLoad , misalnya, Anda membuat tombol bitmap yang bukan bagian dari kotak dialog.

BOOL LoadBitmaps(
    LPCTSTR lpszBitmapResource,
    LPCTSTR lpszBitmapResourceSel = NULL,
    LPCTSTR lpszBitmapResourceFocus = NULL,
    LPCTSTR lpszBitmapResourceDisabled = NULL);

BOOL LoadBitmaps(
    UINT nIDBitmapResource,
    UINT nIDBitmapResourceSel = 0,
    UINT nIDBitmapResourceFocus = 0,
    UINT nIDBitmapResourceDisabled = 0);

Parameter

lpszBitmapResource
Menunjuk ke string null-terminated yang berisi nama bitmap untuk status normal atau "naik" tombol bitmap. Harus diisi.

lpszBitmapResourceSel
Menunjuk ke string null-terminated yang berisi nama bitmap untuk status tombol bitmap dipilih atau "turun". Mungkin NULL.

lpszBitmapResourceFocus
Menunjuk ke string null-terminated yang berisi nama bitmap untuk status terfokus tombol bitmap. Mungkin NULL.

lpszBitmapResourceDisabled
Menunjuk ke string null-terminated yang berisi nama bitmap untuk status dinonaktifkan tombol bitmap. Mungkin NULL.

nIDBitmapResource
Menentukan nomor ID sumber daya sumber daya bitmap untuk status normal atau "naik" tombol bitmap. Harus diisi.

nIDBitmapResourceSel
Menentukan nomor ID sumber daya sumber daya bitmap untuk status tombol bitmap yang dipilih atau "tidak berfungsi". Mungkin 0.

nIDBitmapResourceFocus
Menentukan nomor ID sumber daya sumber daya bitmap untuk status terfokus tombol bitmap. Mungkin 0.

nIDBitmapResourceDisabled
Menentukan nomor ID sumber daya sumber daya bitmap untuk status dinonaktifkan tombol bitmap. Mungkin 0.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Contoh

// Create the bitmap button (must include the BS_OWNERDRAW style).
pmyButton->Create(NULL, WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
                  CRect(10, 10, 100, 100), pParentWnd, 1);

// Load the bitmaps for this button.
pmyButton->LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS, IDB_DISABLE);

CBitmapButton::SizeToContent

Panggil fungsi ini untuk mengubah ukuran tombol bitmap ke ukuran bitmap.

void SizeToContent();

Contoh

CBitmapButton *pmyButton = new CBitmapButton();

// Create the bitmap button (must include the BS_OWNERDRAW style).
pmyButton->Create(NULL, WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
                  CRect(10, 10, 100, 100), pParentWnd, 1);

// Load the bitmaps for this button.
pmyButton->LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS, IDB_DISABLE);

// Resize the button to be the size of the bitmaps.
pmyButton->SizeToContent();

Lihat juga

Sampel MFC CTRLTEST
Kelas CButton
Bagan Hierarki