Bagikan melalui


Kelas CStatusBarctrl

Menyediakan fungsionalitas kontrol bilah status umum Windows.

Sintaks

class CStatusBarCtrl : public CWnd

Anggota

Konstruktor Publik

Nama Deskripsi
CStatusBarctrl::CStatusBarctrl Membuat CStatusBarCtrl objek.

Metode Publik

Nama Deskripsi
CStatusBarctrl::Create Membuat kontrol bilah status dan melampirkannya ke CStatusBarCtrl objek.
CStatusBarctrl::CreateEx Membuat kontrol bilah status dengan gaya perluasan Windows yang ditentukan dan melampirkannya ke CStatusBarCtrl objek.
CStatusBarCtrl::D rawItem Dipanggil saat aspek visual kontrol bilah status gambar pemilik berubah.
CStatusBarCtrl::GetBorders Mengambil lebar saat ini dari batas horizontal dan vertikal kontrol bilah status.
CStatusBarctrl::Geticon Mengambil ikon untuk bagian (juga dikenal sebagai panel) di kontrol bilah status saat ini.
CStatusBarCtrl::GetParts Mengambil hitungan bagian dalam kontrol bilah status.
CStatusBarctrl::GetRect Mengambil persegi panjang pembatas bagian dalam kontrol bilah status.
CStatusBarCtrl::GetText Mengambil teks dari bagian kontrol bilah status yang diberikan.
CStatusBarCtrl::GetTextLength Ambil panjang, dalam karakter, teks dari bagian kontrol bilah status yang diberikan.
CStatusBarCtrl::GetTipText Mengambil teks tipsalat untuk panel di bilah status.
CStatusBarctrl::IsSimple Memeriksa kontrol jendela status untuk menentukan apakah itu dalam mode sederhana.
CStatusBarCtrl::SetBkColor Mengatur warna latar belakang dalam bilah status.
CStatusBarctrl::Seticon Mengatur ikon untuk panel di bilah status.
CStatusBarctrl::SetMinHeight Mengatur tinggi minimum area gambar kontrol bilah status.
CStatusBarCtrl::SetParts Mengatur jumlah bagian dalam kontrol bilah status dan koordinat tepi kanan setiap bagian.
CStatusBarctrl::SetSimple Menentukan apakah kontrol bilah status menampilkan teks sederhana atau menampilkan semua bagian kontrol yang diatur oleh panggilan sebelumnya ke SetParts.
CStatusBarCtrl::SetText Mengatur teks di bagian kontrol bilah status yang diberikan.
CStatusBarCtrl::SetTipText Mengatur teks tipsalat untuk panel di bilah status.

Keterangan

"Kontrol bilah status" adalah jendela horizontal, biasanya ditampilkan di bagian bawah jendela induk, di mana aplikasi dapat menampilkan berbagai jenis informasi status. Kontrol bilah status dapat dibagi menjadi beberapa bagian untuk menampilkan lebih dari satu jenis informasi.

Kontrol ini (dan oleh karena itu CStatusBarCtrl kelas) hanya tersedia untuk program yang berjalan di bawah Windows 95/98 dan Windows NT versi 3.51 dan yang lebih baru.

Untuk informasi selengkapnya tentang menggunakan CStatusBarCtrl, lihat Kontrol dan Menggunakan CStatusBarCtrl.

Hierarki Warisan

CObject

CCmdTarget

CWnd

CStatusBarCtrl

Persyaratan

Header: afxcmn.h

CStatusBarctrl::Create

Membuat kontrol bilah status dan melampirkannya ke CStatusBarCtrl objek.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parameter

dwStyle
Menentukan gaya kontrol bilah status. Terapkan kombinasi gaya kontrol bilah status yang tercantum dalam Gaya Kontrol Umum di Windows SDK. Parameter ini harus menyertakan gaya WS_CHILD. Ini juga harus menyertakan gaya WS_VISIBLE.

rect
Menentukan ukuran dan posisi kontrol bilah status. Ini bisa berupa objek CRect atau struktur RECT .

pParentWnd
Menentukan jendela induk kontrol bilah status, biasanya .CDialog Ini tidak boleh NULL.

Nid
Menentukan ID kontrol bilah status.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, nol.

Keterangan

Anda membangun CStatusBarCtrl dalam dua langkah. Pertama, panggil konstruktor, lalu panggil Create, yang membuat kontrol bilah status dan melampirkannya ke CStatusBarCtrl objek.

Posisi default jendela status berada di sepanjang bagian bawah jendela induk, tetapi Anda dapat menentukan gaya CCS_TOP agar muncul di bagian atas area klien jendela induk. Anda dapat menentukan gaya SBARS_SIZEGRIP untuk menyertakan pegangan ukuran di ujung kanan jendela status. Menggabungkan gaya CCS_TOP dan SBARS_SIZEGRIP tidak disarankan, karena pegangan ukuran yang dihasilkan tidak berfungsi meskipun sistem menariknya di jendela status.

Untuk membuat bilah status dengan gaya jendela yang diperluas, panggil CStatusBarCtrl::CreateEx alih-alih Create.

Contoh

VERIFY(m_wndSBC.Create(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP,
                       CRect(0, 0, 0, 0), this, IDC_STATUSBARCTRL));

CStatusBarctrl::CreateEx

Membuat kontrol (jendela anak) dan mengaitkannya dengan CStatusBarCtrl objek.

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parameter

dwExStyle
Menentukan gaya kontrol yang diperluas yang sedang dibuat. Untuk daftar gaya Windows yang diperluas, lihat parameter dwExStyle untuk CreateWindowEx di Windows SDK.

dwStyle
Menentukan gaya kontrol bilah status. Terapkan kombinasi gaya kontrol bilah status yang tercantum dalam Gaya Kontrol Umum di Windows SDK. Parameter ini harus menyertakan gaya WS_CHILD. Ini juga harus menyertakan gaya WS_VISIBLE.

rect
Referensi ke struktur RECT yang menjelaskan ukuran dan posisi jendela yang akan dibuat, dalam koordinat klien pParentWnd.

pParentWnd
Penunjuk ke jendela yang merupakan induk kontrol.

Nid
ID jendela anak kontrol.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Gunakan CreateEx alih-alih Buat untuk menerapkan gaya Windows yang diperluas, yang ditentukan oleh preface gaya windows yang diperluas WS_EX_.

CStatusBarctrl::CStatusBarctrl

Membuat CStatusBarCtrl objek.

CStatusBarCtrl();

CStatusBarCtrl::D rawItem

Dipanggil oleh kerangka kerja saat aspek visual kontrol bilah status gambar pemilik berubah.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Parameter

lpDrawItemStruct
Penunjuk panjang ke struktur DRAWITEMSTRUCT yang berisi informasi tentang jenis gambar yang diperlukan.

Keterangan

Anggota itemActionDRAWITEMSTRUCT struktur mendefinisikan tindakan menggambar yang akan dilakukan.

Secara default, fungsi anggota ini tidak melakukan apa pun. Ambil alih fungsi anggota ini untuk mengimplementasikan gambar untuk objek gambar CStatusBarCtrl pemilik.

Aplikasi harus memulihkan semua objek antarmuka perangkat grafis (GDI) yang dipilih untuk konteks tampilan yang disediakan dalam lpDrawItemStruct sebelum fungsi anggota ini berakhir.

CStatusBarCtrl::GetBorders

Mengambil lebar batas horizontal dan vertikal kontrol bilah status saat ini dan spasi antar persegi panjang.

BOOL GetBorders(int* pBorders) const;

BOOL GetBorders(
    int& nHorz,
    int& nVert,
    int& nSpacing) const;

Parameter

pBorders
Alamat array bilangan bulat yang memiliki tiga elemen. Elemen pertama menerima lebar batas horizontal, yang kedua menerima lebar batas vertikal, dan yang ketiga menerima lebar batas antara persegi panjang.

nHorz
Referensi ke bilangan bulat yang menerima lebar batas horizontal.

nVert
Referensi ke bilangan bulat yang menerima lebar batas vertikal.

nSpacing
Referensi ke bilangan bulat yang menerima lebar batas di antara persegi panjang.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, nol.

Keterangan

Batas ini menentukan penspasian antara tepi luar kontrol dan persegi panjang dalam kontrol yang berisi teks.

Contoh

RECT rectPane1;
VERIFY(m_wndSBC.GetRect(1, &rectPane1));

int borderArray[3];
VERIFY(m_wndSBC.GetBorders(borderArray));

int nHorz, nVert, nSpacing;
VERIFY(m_wndSBC.GetBorders(nHorz, nVert, nSpacing));

CStatusBarctrl::Geticon

Mengambil ikon untuk bagian (juga dikenal sebagai panel) di kontrol bilah status saat ini.

HICON GetIcon(int iPart) const;

Parameter

iPart
[di] Indeks berbasis nol dari bagian yang berisi ikon yang akan diambil. Jika parameter ini adalah -1, bilah status diasumsikan sebagai bilah status mode sederhana.

Tampilkan Nilai

Handel ke ikon jika metode berhasil; jika tidak, NULL.

Keterangan

Metode ini mengirim pesan SB_GETICON , yang dijelaskan dalam Windows SDK.

Kontrol bilah status terdiri dari baris panel output teks, yang juga dikenal sebagai bagian. Untuk informasi selengkapnya tentang bilah status, lihat Implementasi Bilah Status di MFC dan Mengatur Mode Objek CStatusBarCtrl.

Contoh

Contoh kode pertama mendefinisikan variabel, m_statusBar, yang digunakan untuk mengakses kontrol bilah status saat ini. Variabel ini digunakan dalam contoh berikutnya.

public:
CStatusBarCtrl m_statusBar;

Contoh kode berikutnya menyalin ikon ke dua panel kontrol bilah status saat ini. Di bagian sebelumnya dari contoh kode, kami membuat kontrol bilah status dengan tiga panel lalu menambahkan ikon ke panel pertama. Contoh ini mengambil ikon dari panel pertama lalu menambahkannya ke panel kedua dan ketiga.

// Get the icon from pane 1 and set it in panes 2 and 3.
HICON hIcon = m_statusBar.GetIcon(0);
m_statusBar.SetIcon(1, hIcon);
m_statusBar.SetIcon(2, hIcon);

CStatusBarCtrl::GetParts

Mengambil hitungan bagian dalam kontrol bilah status.

int GetParts(
    int nParts,
    int* pParts) const;

Parameter

nParts
Jumlah bagian yang akan diambil koordinatnya. Jika parameter ini lebih besar dari jumlah bagian dalam kontrol, pesan mengambil koordinat untuk bagian yang ada saja.

pParts
Alamat array bilangan bulat yang memiliki jumlah elemen yang sama dengan jumlah bagian yang ditentukan oleh nParts. Setiap elemen dalam array menerima koordinat klien dari tepi kanan bagian yang sesuai. Jika elemen diatur ke - 1, posisi tepi kanan untuk bagian tersebut meluas ke tepi kanan bilah status.

Tampilkan Nilai

Jumlah bagian dalam kontrol jika berhasil, atau nol sebaliknya.

Keterangan

Fungsi anggota ini juga mengambil koordinat tepi kanan dari sejumlah bagian yang diberikan.

Contoh

int pParts[2];

int nParts = m_wndSBC.GetParts(2, pParts);

CStatusBarctrl::GetRect

Mengambil persegi panjang pembatas bagian dalam kontrol bilah status.

BOOL GetRect(
    int nPane,
    LPRECT lpRect) const;

Parameter

nPane
Indeks berbasis nol dari bagian yang persegi panjang pembatasnya akan diambil.

lpRect
Alamat struktur RECT yang menerima persegi panjang pembatas.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, nol.

Contoh

CRect rectPane1;

VERIFY(m_wndSBC.GetRect(1, &rectPane1));

CStatusBarCtrl::GetText

Mengambil teks dari bagian kontrol bilah status yang diberikan.

CString GetText(
    int nPane,
    int* pType = NULL) const;

int GetText(
    LPCTSTR lpszText,
    int nPane,
    int* pType = NULL) const;

Parameter

lpszText
Alamat buffer yang menerima teks. Parameter ini adalah string null-terminated.

nPane
Indeks berbasis nol dari bagian untuk mengambil teks.

pType
Penunjuk ke bilangan bulat yang menerima informasi jenis. Jenisnya bisa menjadi salah satu nilai ini:

  • 0 Teks digambar dengan batas agar tampak lebih rendah dari bidang bilah status.

  • SBT_NOBORDERS Teks digambar tanpa batas.

  • SBT_POPOUT Teks digambar dengan batas agar tampak lebih tinggi dari bidang bilah status.

  • SBT_OWNERDRAW Jika teks memiliki jenis gambar SBT_OWNERDRAW, pType menerima pesan ini dan mengembalikan nilai 32-bit yang terkait dengan teks alih-alih panjang dan jenis operasi.

Tampilkan Nilai

Panjang, dalam karakter, teks atau CString yang berisi teks saat ini.

Contoh

int nType;
TCHAR *pszPaneOneText;

pszPaneOneText = new TCHAR[m_wndSBC.GetTextLength(1, &nType) + 1];
int nTextLength = m_wndSBC.GetText(pszPaneOneText, 1, &nType);

switch (nType)
{
case 0:
   // Text is drawn with a border to appear lower than the
   // plane of the status bar
   break;
case SBT_NOBORDERS:
   // text is drawn without borders
   break;
case SBT_OWNERDRAW:
   // Text is drawn by the parent window
   break;
case SBT_POPOUT:
   // Text is drawn with a border to appear higher than the
   // plane of the status bar
   break;
}

delete pszPaneOneText;

CStatusBarCtrl::GetTextLength

Mengambil panjang, dalam karakter, teks dari bagian kontrol bilah status yang diberikan.

int GetTextLength(
    int nPane,
    int* pType = NULL) const;

Parameter

nPane
Indeks berbasis nol dari bagian untuk mengambil teks.

pType
Penunjuk ke bilangan bulat yang menerima informasi jenis. Jenisnya bisa menjadi salah satu nilai ini:

  • 0 Teks digambar dengan batas agar tampak lebih rendah dari bidang bilah status.

  • SBT_NOBORDERS Teks digambar tanpa batas.

  • SBT_OWNERDRAW Teks digambar oleh jendela induk.

  • SBT_POPOUT Teks digambar dengan batas agar tampak lebih tinggi dari bidang bilah status.

Tampilkan Nilai

Panjangnya, dalam karakter, dari teks.

Contoh

int nType;
int nLength = m_wndSBC.GetTextLength(0, &nType);

switch (nType)
{
case 0:
   // Text is drawn with a border to appear lower than the
   // plane of the status bar
   break;
case SBT_NOBORDERS:
   // text is drawn without borders
   break;
case SBT_OWNERDRAW:
   // Text is drawn by the parent window
   break;
case SBT_POPOUT:
   // Text is drawn with a border to appear higher than the
   // plane of the status bar
   break;
}

CStatusBarCtrl::GetTipText

Mengambil teks tipsalat untuk panel di bilah status.

CString GetTipText(int nPane) const;

Parameter

nPane
Indeks panel bilah status berbasis nol untuk menerima teks tipsalat.

Tampilkan Nilai

Objek CString yang berisi teks yang akan digunakan dalam tipsalat.

Keterangan

Fungsi anggota ini mengimplementasikan perilaku pesan Win32 SB_GETTIPTEXT, seperti yang dijelaskan dalam Windows SDK.

Contoh

CString csPane0TipText = m_wndSBC.GetTipText(0);

CStatusBarctrl::IsSimple

Memeriksa kontrol jendela status untuk menentukan apakah itu dalam mode sederhana.

BOOL IsSimple() const;

Tampilkan Nilai

Bukan nol jika kontrol jendela status dalam mode sederhana; jika tidak, nol.

Keterangan

Fungsi anggota ini mengimplementasikan perilaku pesan Win32 SB_ISSIMPLE, seperti yang dijelaskan dalam Windows SDK.

CStatusBarCtrl::SetBkColor

Mengatur warna latar belakang dalam bilah status.

COLORREF SetBkColor(COLORREF cr);

Parameter

Cr
Nilai COLORREF yang menentukan warna latar belakang baru. Tentukan nilai CLR_DEFAULT untuk menyebabkan bilah status menggunakan warna latar belakang defaultnya.

Tampilkan Nilai

Nilai COLORREF yang mewakili warna latar belakang default sebelumnya.

Keterangan

Fungsi anggota ini mengimplementasikan perilaku pesan Win32 SB_SETBKCOLOR, seperti yang dijelaskan dalam Windows SDK.

Contoh

m_wndSBC.SetBkColor(RGB(0, 0, 250));

HICON hIcon = AfxGetApp()->LoadIcon(IDI_PANE_0_ICON);
VERIFY(hIcon);
VERIFY(m_wndSBC.SetIcon(0, hIcon));

CStatusBarctrl::Seticon

Mengatur ikon untuk panel di bilah status.

BOOL SetIcon(
    int nPane,
    HICON hIcon);

Parameter

nPane
Indeks panel berbasis nol yang akan menerima ikon. Jika parameter ini adalah -1, bilah status diasumsikan sebagai bilah status sederhana.

hIcon
Tangani ke ikon yang akan diatur. Jika nilai ini NULL, ikon dihapus dari bagian .

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, nol.

Keterangan

Fungsi anggota ini mengimplementasikan perilaku pesan Win32 SB_SETICON, seperti yang dijelaskan dalam Windows SDK.

Contoh

Lihat contoh untuk CStatusBarCtrl::SetBkColor.

CStatusBarctrl::SetMinHeight

Mengatur tinggi minimum area gambar kontrol bilah status.

void SetMinHeight(int nMin);

Parameter

nMin
Tinggi minimum, dalam piksel, kontrol.

Keterangan

Tinggi minimum adalah jumlah nMin dan dua kali lebar, dalam piksel, dari batas vertikal kontrol bilah status.

Contoh

m_wndSBC.SetMinHeight(40);

CStatusBarCtrl::SetParts

Mengatur jumlah bagian dalam kontrol bilah status dan koordinat tepi kanan setiap bagian.

BOOL SetParts(
    int nParts,
    int* pWidths);

Parameter

nParts
Jumlah bagian yang akan diatur. Jumlah bagian tidak boleh lebih besar dari 255.

pWidths
Alamat array bilangan bulat yang memiliki jumlah elemen yang sama dengan bagian yang ditentukan oleh nParts. Setiap elemen dalam array menentukan posisi, dalam koordinat klien, dari tepi kanan bagian yang sesuai. Jika elemen adalah - 1, posisi tepi kanan untuk bagian tersebut meluas ke tepi kanan kontrol.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, nol.

Contoh

const int c_nParts = 4;
CRect rect;

m_wndSBC.GetClientRect(&rect);
int aWidths[c_nParts] = {rect.right - 300, rect.right - 200, rect.right - 100,
                         -1};

VERIFY(m_wndSBC.SetParts(c_nParts, aWidths));

CStatusBarctrl::SetSimple

Menentukan apakah kontrol bilah status menampilkan teks sederhana atau menampilkan semua bagian kontrol yang diatur oleh panggilan sebelumnya ke SetParts.

BOOL SetSimple(BOOL bSimple = TRUE);

Parameter

bSimple
[di] Bendera jenis tampilan. Jika parameter ini TRUE, kontrol akan menampilkan teks sederhana; jika FALSE, ini menampilkan beberapa bagian.

Tampilkan Nilai

Selalu mengembalikan 0.

Keterangan

Jika aplikasi Anda mengubah kontrol bilah status dari yang tidak sederhana menjadi sederhana, atau sebaliknya, sistem segera menguras ulang kontrol.

CStatusBarCtrl::SetText

Mengatur teks di bagian kontrol bilah status yang diberikan.

BOOL SetText(
    LPCTSTR lpszText,
    int nPane,
    int nType);

Parameter

lpszText
Alamat string yang dihentikan null yang menentukan teks yang akan diatur. Jika nType SBT_OWNERDRAW, lpszText mewakili 32 bit data.

nPane
Indeks berbasis nol dari bagian yang akan diatur. Jika nilai ini adalah 255, kontrol bilah status diasumsikan sebagai kontrol sederhana hanya memiliki satu bagian.

nType
Jenis operasi menggambar. Lihat pesan SB_SETTEXT untuk daftar nilai yang mungkin.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, nol.

Keterangan

Pesan membatalkan bagian kontrol yang telah berubah, menyebabkannya menampilkan teks baru saat kontrol berikutnya menerima pesan WM_PAINT.

Contoh

VERIFY(m_wndSBC.SetText(_T("Text For Pane 1"), 1, 0));

CStatusBarCtrl::SetTipText

Mengatur teks tipsalat untuk panel di bilah status.

void SetTipText(
    int nPane,
    LPCTSTR pszTipText);

Parameter

nPane
Indeks panel bilah status berbasis nol untuk menerima teks tipsalat.

pszTipText
Penunjuk ke string yang berisi teks tipsalat.

Keterangan

Fungsi anggota ini mengimplementasikan perilaku pesan Win32 SB_SETTIPTEXT, seperti yang dijelaskan dalam Windows SDK.

Contoh

m_wndSBC.SetTipText(0, _T("This is Pane 0"));

Baca juga

Kelas CWnd
Bagan Hierarki
Kelas CToolBarctrl