Bagikan melalui


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:

Hierarki Warisan

CObject

CCmdTarget

CWnd

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

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

Baca juga

Sampel MFC CTRLBARS
Kelas CWnd
Bagan Hierarki
Kelas CToolBar
Kelas CDialogBar
Kelas CStatusBar
Kelas CReBar