Panduan: Menempatkan Kontrol Pada Toolbar
Artikel ini menjelaskan cara menambahkan tombol bilah alat yang berisi kontrol Windows ke bilah alat. Di MFC, tombol toolbar harus kelas turunan Kelas CMFCToolBarButton, misalnya Kelas CMFCToolBarComboBoxButton, Kelas CMFCToolBarEditBoxButton, Kelas CMFCDropDownToolbarButton, atau Kelas CMFCToolBarMenuButton.
Menambahkan Kontrol ke Bilah Alat
Untuk menambahkan kontrol ke toolbar, ikuti langkah-langkah berikut:
Pesan ID sumber daya dummy untuk tombol di sumber daya toolbar induk. Untuk informasi selengkapnya tentang cara membuat tombol dengan menggunakan Editor Toolbar di Visual Studio, lihat artikel Editor Toolbar.
Pesan gambar toolbar (ikon tombol) untuk tombol di semua bitmap toolbar induk.
Di handler pesan yang memproses
AFX_WM_RESETTOOLBAR
pesan, lakukan langkah-langkah berikut:Buat kontrol tombol dengan menggunakan
CMFCToolbarButton
kelas -turunan.Ganti tombol dummy dengan kontrol baru dengan menggunakan CMFCToolBar::ReplaceButton. Anda dapat membuat objek tombol pada tumpukan, karena
ReplaceButton
menyalin objek tombol dan mempertahankan salinan.
Catatan
Jika Anda mengaktifkan kustomisasi di aplikasi, Anda mungkin harus mengatur ulang toolbar dengan menggunakan tombol Reset pada tab Toolbar dari kotak dialog Kustomisasi untuk melihat kontrol yang diperbarui di aplikasi Anda setelah kompilasi ulang. Status toolbar disimpan di registri Windows, dan informasi registri dimuat dan diterapkan setelah ReplaceButton
metode dijalankan selama pengaktifan aplikasi.
Kontrol dan Kustomisasi Bilah Alat
Tab Perintah dari kotak dialog Kustomisasi berisi daftar perintah yang tersedia dalam aplikasi. Secara default, kotak dialog Kustomisasi memproses menu aplikasi dan membangun daftar tombol toolbar standar di setiap kategori menu. Untuk mempertahankan fungsionalitas yang diperluas yang disediakan oleh kontrol toolbar, Anda harus mengganti tombol toolbar standar dengan kontrol kustom dalam kotak dialog Kustomisasi .
Saat Anda mengaktifkan kustomisasi, Anda membuat kotak dialog Kustomisasi di handler OnViewCustomize
kustomisasi dengan menggunakan kelas Kelas CMFCToolBarsCustomizeDialog. Sebelum Anda menampilkan kotak dialog Kustomisasi dengan memanggil CMFCToolBarsCustomizeDialog::Create, panggil CMFCToolBarsCustomizeDialog::ReplaceButton untuk mengganti tombol standar dengan kontrol baru.
Contoh: Membuat Kotak Kombo Temukan
Bagian ini menjelaskan cara membuat kontrol Temukan kotak kombo yang muncul pada toolbar dan berisi string pencarian yang digunakan baru-baru ini. Pengguna dapat mengetik string di kontrol lalu menekan tombol enter untuk mencari dokumen, atau menekan tombol escape untuk mengembalikan fokus ke bingkai utama. Contoh ini mengasumsikan bahwa dokumen ditampilkan dalam tampilan turunan Kelas CEditView.
Membuat Kontrol Temukan
Pertama, buat kontrol kotak kombo Temukan :
Tambahkan tombol dan perintahnya ke sumber daya aplikasi:
Di sumber daya aplikasi, tambahkan tombol baru dengan
ID_EDIT_FIND
ID perintah ke toolbar di aplikasi Anda dan ke bitmap apa pun yang terkait dengan toolbar.Buat item menu baru dengan
ID_EDIT_FIND
ID perintah.Tambahkan string baru "Temukan teks\nFind" ke tabel string dan tetapkan
ID_EDIT_FIND_COMBO
ID perintah. ID ini akan digunakan sebagai ID perintah tombol Temukan kotak kombo.Catatan
Karena
ID_EDIT_FIND
adalah perintah standar yang diproses olehCEditView
, Anda tidak diharuskan untuk menerapkan handler khusus untuk perintah ini. Namun, Anda harus menerapkan handler untuk perintahID_EDIT_FIND_COMBO
baru .
Buat kelas baru,
CFindComboBox
, berasal dari Kelas CComboBox.CFindComboBox
Di kelas , ambil alihPreTranslateMessage
metode virtual. Metode ini akan mengaktifkan kotak kombo untuk memproses pesan WM_KEYDOWN . Jika pengguna menekan kunci escape (VK_ESCAPE
), kembalikan fokus ke jendela bingkai utama. Jika pengguna menekan tombol Enter (VK_ENTER
), posting ke jendela bingkai utama pesanWM_COMMAND
yang berisiID_EDIT_FIND_COMBO
ID perintah.Buat kelas untuk tombol Temukan kotak kombo, berasal dari KELAS CMFCToolBarComboBoxButton. Dalam contoh ini, itu bernama
CFindComboButton
.Konstruktor
CMFCToolbarComboBoxButton
mengambil tiga parameter: ID perintah tombol, indeks gambar tombol, dan gaya kotak kombo. Atur parameter ini sebagai berikut:Teruskan
ID_EDIT_FIND_COMBO
sebagai ID perintah.Gunakan CCommandManager::GetCmdImage dengan
ID_EDIT_FIND
untuk mendapatkan indeks gambar.Untuk daftar gaya kotak kombo yang tersedia, lihat Gaya Kotak Kombo.
CFindComboButton
Di kelas , ambil alihCMFCToolbarComboBoxButton::CreateCombo
metode . Di sini Anda harus membuatCFindComboButton
objek dan mengembalikan pointer ke objek tersebut.Gunakan makro IMPLEMENT_SERIAL untuk membuat tombol kombo tetap ada. Manajer ruang kerja secara otomatis memuat dan menyimpan status tombol di registri Windows.
Terapkan
ID_EDIT_FIND_COMBO
handler dalam tampilan dokumen Anda. Gunakan CMFCToolBar::GetCommandButtons denganID_EDIT_FIND_COMBO
untuk mengambil semua tombol Temukan kotak kombo. Mungkin ada beberapa salinan tombol dengan ID perintah yang sama karena kustomisasi.Di handler
ID_EDIT_FIND
OnFind
pesan , gunakan CMFCToolBar::IsLastCommandFromButton untuk menentukan apakah perintah temukan dikirim dari tombol temukan kotak kombo. Jika demikian, temukan teks dan tambahkan string pencarian ke kotak kombo.
Menambahkan Temukan Kontrol ke Toolbar Utama
Untuk menambahkan tombol kotak kombo ke toolbar, ikuti langkah-langkah berikut:
Terapkan handler
AFX_WM_RESETTOOLBAR
OnToolbarReset
pesan di jendela bingkai utama.Catatan
Kerangka kerja mengirim pesan ini ke jendela bingkai utama ketika toolbar diinisialisasi selama pengaktifan aplikasi, atau ketika toolbar direset selama kustomisasi. Dalam kedua kasus tersebut, Anda harus mengganti tombol toolbar standar dengan tombol temukan kotak kombo kustom.
Di handler
AFX_WM_RESETTOOLBAR
, periksa ID toolbar, yaitu WPARAM dari pesan AFX_WM_RESETTOOLBAR. Jika ID toolbar sama dengan toolbar yang berisi tombol Temukan kotak kombo, panggil CMFCToolBar::ReplaceButton untuk mengganti tombol Temukan (yaitu, tombol dengan IDID_EDIT_FIND)
perintah denganCFindComboButton
objek.Catatan
Anda dapat membuat
CFindComboBox
objek pada tumpukan, karenaReplaceButton
menyalin objek tombol dan mempertahankan salinan.
Menambahkan Kontrol Temukan ke Kotak Dialog Kustomisasi
Di handler OnViewCustomize
kustomisasi, panggil CMFCToolBarsCustomizeDialog::ReplaceButton untuk mengganti tombol Temukan (yaitu, tombol dengan ID ID_EDIT_FIND
perintah ) dengan CFindComboButton
objek.
Baca juga
Bagan Hierarki
Kelas
Kelas CMFCToolBar
Kelas CMFCToolBarButton
Kelas CMFCToolBarComboBoxButton
Kelas CMFCToolBarsCustomizeDialog
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk