Kelas CControlBar
Kelas dasar untuk kelas bilah kontrol CStatusBar, CToolBar, CDialogBar, CReBar, dan COleResizeBar.
Sintaks
class CControlBar : public CWnd
Anggota
Konstruktor yang Dilindungi
Nama | Deskripsi |
---|---|
CControlBar::CControlBar | Membuat CControlBar objek. |
Metode Publik
Nama | Deskripsi |
---|---|
CControlBar::CalcDynamicLayout | Mengembalikan ukuran bilah kontrol dinamis sebagai objek CSize . |
CControlBar::CalcFixedLayout | Mengembalikan ukuran bilah kontrol sebagai objek CSize . |
CControlBar::CalcInsideRect | Mengembalikan dimensi area bilah kontrol saat ini; termasuk perbatasan. |
CControlBar::D oPaint | Merender batas dan pencengkeram bilah kontrol. |
CControlBar::D rawBorders | Merender batas bilah kontrol. |
CControlBar::D rawGripper | Merender gripper dari bilah kontrol. |
CControlBar::EnableDocking | Memungkinkan bilah kontrol ditampung atau mengambang. |
CControlBar::GetBarStyle | Mengambil pengaturan gaya bilah kontrol. |
CControlBar::GetBorders | Mengambil nilai batas bilah kontrol. |
CControlBar::GetCount | Mengembalikan jumlah elemen non-HWND di bilah kontrol. |
CControlBar::GetDockingFrame | Mengembalikan penunjuk ke bingkai tempat bilah kontrol ditambatkan. |
CControlBar::IsFloating | Mengembalikan nilai bukan nol jika bilah kontrol yang dimaksud adalah bilah kontrol mengambang. |
CControlBar::OnUpdateCmdUI | Memanggil handler UI Perintah. |
CControlBar::SetBarStyle | Memodifikasi pengaturan gaya bilah kontrol. |
CControlBar::SetBorders | Mengatur nilai batas bilah kontrol. |
CControlBar::SetInPlaceOwner | Mengubah pemilik di tempat dari bilah kontrol. |
Anggota Data Publik
Nama | Deskripsi |
---|---|
CControlBar::m_bAutoDelete | Jika bukan nol, CControlBar objek akan dihapus ketika bilah kontrol Windows dihancurkan. |
CControlBar::m_pInPlaceOwner | Pemilik di tempat dari bilah kontrol. |
Keterangan
Bilah kontrol adalah jendela yang biasanya diratakan ke kiri atau kanan jendela bingkai. Ini mungkin berisi item turunan yang merupakan kontrol berbasis HWND, yang merupakan jendela yang menghasilkan dan merespons pesan Windows, atau item berbasis non-HWND, yang bukan jendela dan dikelola oleh kode aplikasi atau kode kerangka kerja. Kotak daftar dan kontrol edit adalah contoh kontrol berbasis HWND; panel bilah status dan tombol bitmap adalah contoh kontrol berbasis non-HWND.
Jendela bilah kontrol biasanya merupakan jendela anak dari jendela bingkai induk dan biasanya bersaudara dengan tampilan klien atau klien MDI dari jendela bingkai. Objek CControlBar
menggunakan informasi tentang persegi panjang klien jendela induk untuk memosisikan dirinya sendiri. Kemudian menginformasikan jendela induk tentang berapa banyak ruang yang tetap tidak dialokasikan di area klien jendela induk.
Untuk informasi selengkapnya tentang CControlBar
, lihat:
Catatan Teknis 31: Bilah Kontrol.
Hierarki Warisan
CControlBar
Persyaratan
Header: afxext.h
CControlBar::CalcDynamicLayout
Kerangka kerja memanggil fungsi anggota ini untuk menghitung dimensi toolbar dinamis.
virtual CSize CalcDynamicLayout(
int nLength,
DWORD nMode);
Parameter
nLength
Dimensi bilah kontrol yang diminta, baik horizontal atau vertikal, tergantung pada dwMode.
nMode
Bendera yang telah ditentukan sebelumnya berikut digunakan untuk menentukan tinggi dan lebar bilah kontrol dinamis. Gunakan operator bitwise-OR (|
) untuk menggabungkan bendera.
Bendera mode tata letak | Apa artinya |
---|---|
LM_STRETCH | Menunjukkan apakah bilah kontrol harus direntangkan ke ukuran bingkai. Atur jika bilah bukan bilah docking (tidak tersedia untuk docking). Tidak diatur ketika bilah ditambatkan atau mengambang (tersedia untuk docking). Jika diatur, LM_STRETCH mengabaikan nLength dan mengembalikan dimensi berdasarkan status LM_HORZ. LM_STRETCH berfungsi sama dengan parameter bStretch yang digunakan dalam CalcFixedLayout; lihat fungsi anggota tersebut untuk informasi selengkapnya tentang hubungan antara peregangan dan orientasi. |
LM_HORZ | Menunjukkan bahwa bilah berorientasi horizontal atau vertikal. Atur jika bilah berorientasi horizontal, dan jika berorientasi vertikal, bilah tidak diatur. LM_HORZ berfungsi mirip dengan parameter bHorz yang digunakan dalam CalcFixedLayout; lihat fungsi anggota tersebut untuk informasi selengkapnya tentang hubungan antara peregangan dan orientasi. |
LM_MRUWIDTH | Lebar Dinamis yang terakhir digunakan. Mengabaikan parameter nLength dan menggunakan lebar yang baru saja digunakan. |
LM_HORZDOCK | Dimensi Bertabuh Horizontal. Mengabaikan parameter nLength dan mengembalikan ukuran dinamis dengan lebar terbesar. |
LM_VERTDOCK | Dimensi Bertabuh Vertikal. Mengabaikan parameter nLength dan mengembalikan ukuran dinamis dengan tinggi terbesar. |
LM_LENGTHY | Atur jika nLength menunjukkan tinggi (arah Y) alih-alih lebar. |
LM_COMMIT | Mengatur ulang LM_MRUWIDTH ke lebar bilah kontrol mengambang saat ini. |
Tampilkan Nilai
Ukuran bilah kontrol, dalam piksel, dari objek CSize .
Keterangan
Ambil alih fungsi anggota ini untuk menyediakan tata letak dinamis Anda sendiri di kelas yang Anda dapatkan dari CControlBar
. Kelas MFC berasal dari CControlBar
, seperti CToolbar, mengambil alih fungsi anggota ini dan menyediakan implementasi mereka sendiri.
CControlBar::CalcFixedLayout
Panggil fungsi anggota ini untuk menghitung ukuran horizontal bilah kontrol.
virtual CSize CalcFixedLayout(
BOOL bStretch,
BOOL bHorz);
Parameter
bStretch
Menunjukkan apakah bilah harus direntangkan ke ukuran bingkai. Parameter bStretch bukan nol ketika bilah bukan bilah docking (tidak tersedia untuk docking) dan 0 ketika ditambatkan atau mengambang (tersedia untuk docking).
bHorz
Menunjukkan bahwa bilah berorientasi horizontal atau vertikal. Parameter bHorz bukan nol jika bilah berorientasi horizontal dan berorientasi 0 jika berorientasi vertikal.
Tampilkan Nilai
Ukuran bilah kontrol, dalam piksel, objek CSize
.
Keterangan
Bilah kontrol seperti toolbar dapat membentang secara horizontal atau vertikal untuk mengakomodasi tombol yang terdapat di bilah kontrol.
Jika bStretch TRUE, regangkan dimensi di sepanjang orientasi yang disediakan oleh bHorz. Dengan kata lain, jika bHorz FALSE, bilah kontrol direntangkan secara vertikal. Jika bStretch FALSE, tidak ada peregangan yang terjadi. Tabel berikut menunjukkan kemungkinan permutasi, dan gaya bilah kontrol yang dihasilkan, dari bStretch dan bHorz.
bStretch | bHorz | Peregangan | Orientasi | Docking/Tidak docking |
---|---|---|---|---|
BENAR | BENAR | Peregangan horizontal | Berorientasi horizontal | Tidak menambah |
BENAR | SALAH | Peregangan vertikal | Berorientasi vertikal | Tidak menambah |
SALAH | BENAR | Tidak tersedia peregangan | Berorientasi horizontal | Docking |
SALAH | SALAH | Tidak tersedia peregangan | Berorientasi vertikal | Docking |
CControlBar::CalcInsideRect
Kerangka kerja memanggil fungsi ini untuk menghitung area klien dari bilah kontrol.
virtual void CalcInsideRect(
CRect& rect,
BOOL bHorz) const;
Parameter
rect
Berisi dimensi bilah kontrol saat ini; termasuk perbatasan.
bHorz
Menunjukkan bahwa bilah berorientasi horizontal atau vertikal. Parameter bHorz bukan nol jika bilah berorientasi horizontal dan berorientasi 0 jika berorientasi vertikal.
Keterangan
Fungsi ini dipanggil sebelum bilah kontrol dicat.
Ambil alih fungsi ini untuk menyesuaikan penyajian batas dan bilah pencengkeram bilah kontrol.
CControlBar::CControlBar
Membuat CControlBar
objek.
CControlBar();
CControlBar::D oPaint
Dipanggil oleh kerangka kerja untuk merender batas dan bilah gripper dari bilah kontrol.
virtual void DoPaint(CDC* pDC);
Parameter
pDC
Arahkan ke konteks perangkat yang akan digunakan untuk merender batas dan pencengkeram bilah kontrol.
Keterangan
Ambil alih fungsi ini untuk menyesuaikan perilaku menggambar bilah kontrol.
Metode penyesuaian lainnya adalah mengambil alih DrawBorders
fungsi dan DrawGripper
dan menambahkan kode gambar kustom untuk batas dan pencengkeram. Karena metode ini dipanggil dengan metode default DoPaint
, penimpaan DoPaint
tidak diperlukan.
CControlBar::D rawBorders
Dipanggil oleh kerangka kerja untuk merender batas bilah kontrol.
virtual void DrawBorders(
CDC* pDC,
CRect& rect);
Parameter
pDC
Arahkan ke konteks perangkat yang akan digunakan untuk merender batas bilah kontrol.
rect
Objek CRect
yang berisi dimensi bilah kontrol.
Keterangan
Ambil alih fungsi ini untuk menyesuaikan tampilan batas bilah kontrol.
CControlBar::D rawGripper
Dipanggil oleh kerangka kerja untuk merender gripper bilah kontrol.
virtual void DrawGripper(
CDC* pDC,
const CRect& rect);
Parameter
pDC
Menunjuk ke konteks perangkat yang akan digunakan untuk merender gripper bilah kontrol.
rect
Objek CRect
yang berisi dimensi gripper bilah kontrol.
Keterangan
Ambil alih fungsi ini untuk menyesuaikan tampilan pencengkeram bilah kontrol.
CControlBar::EnableDocking
Panggil fungsi ini untuk mengaktifkan bilah kontrol untuk ditampar.
void EnableDocking(DWORD dwDockStyle);
Parameter
dwDockStyle
Menentukan apakah bilah kontrol mendukung docking dan sisi jendela induknya tempat bilah kontrol dapat ditampung, jika didukung. Dapat berupa satu atau beberapa hal berikut:
CBRS_ALIGN_TOP Memungkinkan docking di bagian atas area klien.
CBRS_ALIGN_BOTTOM Memungkinkan docking di bagian bawah area klien.
CBRS_ALIGN_LEFT Memungkinkan docking di sisi kiri area klien.
CBRS_ALIGN_RIGHT Memungkinkan docking di sisi kanan area klien.
CBRS_ALIGN_ANY Memungkinkan docking di sisi mana pun dari area klien.
CBRS_FLOAT_MULTI Memungkinkan beberapa bilah kontrol mengambang dalam satu jendela bingkai mini.
Jika 0 (yaitu, menunjukkan tidak ada bendera), bilah kontrol tidak akan menambatkan.
Keterangan
Sisi yang ditentukan harus cocok dengan salah satu sisi yang diaktifkan untuk penambatan di jendela bingkai tujuan, atau bilah kontrol tidak dapat ditambatkan ke jendela bingkai tersebut.
CControlBar::GetBarStyle
Panggil fungsi ini untuk menentukan pengaturan CBRS_ (gaya bilah kontrol) mana yang saat ini diatur untuk bilah kontrol.
DWORD GetBarStyle();
Tampilkan Nilai
Pengaturan CBRS_ (gaya bilah kontrol) saat ini untuk bilah kontrol. Lihat CControlBar::SetBarStyle untuk daftar lengkap gaya yang tersedia.
Keterangan
Tidak menangani gaya WS_ (gaya jendela).
CControlBar::GetBorders
Mengembalikan nilai batas saat ini untuk bilah kontrol.
CRect GetBorders() const;
Tampilkan Nilai
Objek CRect
yang berisi lebar saat ini (dalam piksel) dari setiap sisi objek bilah kontrol. Misalnya, nilai anggota kiri , objek CRect , adalah lebar batas sebelah kiri.
CControlBar::GetCount
Mengembalikan jumlah item non-HWND pada CControlBar
objek.
int GetCount() const;
Tampilkan Nilai
Jumlah item non-HWND pada CControlBar
objek. Fungsi ini mengembalikan 0 untuk objek CDialogBar .
Keterangan
Jenis item tergantung pada objek turunan: panel untuk objek CStatusBar , dan tombol dan pemisah untuk objek CToolBar .
CControlBar::GetDockingFrame
Panggil fungsi anggota ini untuk mendapatkan penunjuk ke jendela bingkai saat ini tempat bilah kontrol Anda ditambatkan.
CFrameWnd* GetDockingFrame() const;
Tampilkan Nilai
Penunjuk ke jendela bingkai jika berhasil; jika tidak, NULL.
Jika bilah kontrol tidak ditambatkan ke jendela bingkai (yaitu, jika bilah kontrol mengambang), fungsi ini akan mengembalikan penunjuk ke CMiniFrameWnd induknya.
Keterangan
Untuk informasi selengkapnya tentang bilah kontrol yang dapat di-dock, lihat CControlBar::EnableDocking dan CFrameWnd::D ockControlBar.
CControlBar::IsFloating
Panggil fungsi anggota ini untuk menentukan apakah bilah kontrol mengambang atau ditampar.
BOOL IsFloating() const;
Tampilkan Nilai
Bukan nol jika bilah kontrol mengambang; jika tidak, 0.
Keterangan
Untuk mengubah status bilah kontrol dari ditambatkan ke mengambang, panggil CFrameWnd::FloatControlBar.
CControlBar::m_bAutoDelete
Jika bukan nol, CControlBar
objek akan dihapus ketika bilah kontrol Windows dihancurkan.
BOOL m_bAutoDelete;
Keterangan
m_bAutoDelete adalah variabel publik jenis BOOL.
Objek bilah kontrol biasanya disematkan dalam objek jendela bingkai. Dalam hal ini, m_bAutoDelete adalah 0 karena objek bilah kontrol yang disematkan dihancurkan ketika jendela bingkai dihancurkan.
Atur variabel ini ke nilai bukan nol jika Anda mengalokasikan CControlBar
objek pada tumpukan dan Anda tidak berencana untuk memanggil delete
.
CControlBar::m_pInPlaceOwner
Pemilik di tempat dari bilah kontrol.
CWnd* m_pInPlaceOwner;
CControlBar::OnUpdateCmdUI
Fungsi anggota ini dipanggil oleh kerangka kerja untuk memperbarui status bilah alat atau bilah status.
virtual void OnUpdateCmdUI(
CFrameWnd* pTarget,
BOOL bDisableIfNoHndler) = 0;
Parameter
pTarget
Menunjuk ke jendela bingkai utama aplikasi. Penunjuk ini digunakan untuk merutekan pesan pembaruan.
bDisableIfNoHndler
Bendera yang menunjukkan apakah kontrol yang tidak memiliki handler pembaruan harus ditampilkan secara otomatis sebagai dinonaktifkan.
Keterangan
Untuk memperbarui tombol atau panel individual, gunakan makro ON_UPDATE_COMMAND_UI di peta pesan Anda untuk mengatur handler pembaruan dengan tepat. Lihat ON_UPDATE_COMMAND_UI untuk informasi selengkapnya tentang menggunakan makro ini.
OnUpdateCmdUI
dipanggil oleh kerangka kerja ketika aplikasi diam. Jendela bingkai yang akan diperbarui harus merupakan jendela anak, setidaknya secara tidak langsung, dari jendela bingkai yang terlihat. OnUpdateCmdUI
adalah pengalih tingkat lanjut.
CControlBar::SetBarStyle
Panggil fungsi ini untuk mengatur gaya CBRS_ yang diinginkan untuk bilah kontrol.
void SetBarStyle(DWORD dwStyle);
Parameter
dwStyle
Gaya yang diinginkan untuk bilah kontrol. Dapat berupa satu atau beberapa hal berikut:
CBRS_ALIGN_TOP Memungkinkan bilah kontrol ditambatkan ke bagian atas area klien jendela bingkai.
CBRS_ALIGN_BOTTOM Memungkinkan bilah kontrol ditambatkan ke bagian bawah area klien jendela bingkai.
CBRS_ALIGN_LEFT Memungkinkan bilah kontrol ditambatkan ke sisi kiri area klien jendela bingkai.
CBRS_ALIGN_RIGHT Memungkinkan bilah kontrol ditambatkan ke sisi kanan area klien jendela bingkai.
CBRS_ALIGN_ANY Memungkinkan bilah kontrol ditambatkan ke sisi mana pun dari area klien jendela bingkai.
CBRS_BORDER_TOP Menyebabkan batas digambar di tepi atas bilah kontrol saat akan terlihat.
CBRS_BORDER_BOTTOM Menyebabkan batas digambar di tepi bawah bilah kontrol saat akan terlihat.
CBRS_BORDER_LEFT Menyebabkan batas digambar di tepi kiri bilah kontrol saat akan terlihat.
CBRS_BORDER_RIGHT Menyebabkan batas digambar di tepi kanan bilah kontrol saat akan terlihat.
CBRS_FLOAT_MULTI Memungkinkan beberapa bilah kontrol mengambang dalam satu jendela bingkai mini.
CBRS_TOOLTIPS Menyebabkan tips alat ditampilkan untuk bilah kontrol.
CBRS_FLYBY Menyebabkan teks pesan diperbarui secara bersamaan dengan tips alat.
CBRS_GRIPPER Menyebabkan gripper, mirip dengan yang digunakan pada pita dalam
CReBar
objek, yang akan digambar untuk kelas -turunan apa punCControlBar
.
Keterangan
Tidak memengaruhi pengaturan WS_ (gaya jendela).
CControlBar::SetBorders
Panggil fungsi ini untuk mengatur ukuran batas bilah kontrol.
void SetBorders(
int cxLeft = 0,
int cyTop = 0,
int cxRight = 0,
int cyBottom = 0);
void SetBorders(LPCRECT lpRect);
Parameter
cxLeft
Lebar (dalam piksel) dari batas kiri bilah kontrol.
cyTop
Tinggi (dalam piksel) batas atas bilah kontrol.
cxRight
Lebar (dalam piksel) batas kanan bilah kontrol.
cyBottom
Tinggi (dalam piksel) dari batas bawah bilah kontrol.
lpRect
Penunjuk ke objek CRect yang berisi lebar saat ini (dalam piksel)dari setiap batas objek bilah kontrol.
Contoh
Contoh kode berikut mengatur batas atas dan bawah bilah kontrol menjadi 5 piksel, dan batas kiri dan kanan menjadi 2 piksel:
CControlBar &m_myControlBar = m_Rebar;
m_myControlBar.SetBorders(2, 5, 2, 5);
CControlBar::SetInPlaceOwner
Mengubah pemilik di tempat dari bilah kontrol.
void SetInPlaceOwner(CWnd* pWnd);
Parameter
pWnd
Penunjuk ke CWnd
objek.
Keterangan
Lihat juga
Sampel MFC CTRLBARS
Kelas CWnd
Bagan Hierarki
Kelas CToolBar
Kelas CDialogBar
Kelas CStatusBar
Kelas CReBar