CProgressCtrl
Kelas
Menyediakan fungsionalitas kontrol bilah kemajuan umum Windows.
Sintaks
class CProgressCtrl : public CWnd
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CProgressCtrl::CProgressCtrl |
Membuat CProgressCtrl objek. |
Metode Publik
Nama | Deskripsi |
---|---|
CProgressCtrl::Create |
Membuat kontrol bilah kemajuan dan melampirkannya ke CProgressCtrl objek. |
CProgressCtrl::CreateEx |
Membuat kontrol kemajuan dengan gaya perluasan Windows yang ditentukan dan melampirkannya ke CProgressCtrl objek. |
CProgressCtrl::GetBarColor |
Mendapatkan warna bilah indikator kemajuan untuk kontrol bilah kemajuan saat ini. |
CProgressCtrl::GetBkColor |
Mendapatkan warna latar belakang bilah kemajuan saat ini. |
CProgressCtrl::GetPos |
Mendapatkan posisi bilah kemajuan saat ini. |
CProgressCtrl::GetRange |
Mendapatkan batas bawah dan atas rentang kontrol bilah kemajuan. |
CProgressCtrl::GetState |
Mendapatkan status kontrol bilah kemajuan saat ini. |
CProgressCtrl::GetStep |
Mengambil tahapan langkah untuk bilah kemajuan kontrol bilah kemajuan saat ini. |
CProgressCtrl::OffsetPos |
Memajukan posisi kontrol bilah kemajuan saat ini dengan kenaikan tertentu dan menggambar ulang bilah untuk mencerminkan posisi baru. |
CProgressCtrl::SetBarColor |
Mengatur warna bilah indikator kemajuan di kontrol bilah kemajuan saat ini. |
CProgressCtrl::SetBkColor |
Mengatur warna latar belakang untuk bilah kemajuan. |
CProgressCtrl::SetMarquee |
Mengaktifkan atau menonaktifkan mode marquee untuk kontrol bilah kemajuan saat ini. |
CProgressCtrl::SetPos |
Mengatur posisi saat ini untuk kontrol bilah kemajuan dan menggambar ulang bilah untuk mencerminkan posisi baru. |
CProgressCtrl::SetRange |
Mengatur rentang minimum dan maksimum untuk kontrol bilah kemajuan dan menggambar ulang bilah untuk mencerminkan rentang baru. |
CProgressCtrl::SetState |
Mengatur status kontrol bilah kemajuan saat ini. |
CProgressCtrl::SetStep |
Menentukan tahapan langkah untuk kontrol bilah kemajuan. |
CProgressCtrl::StepIt |
Memajukan posisi saat ini untuk kontrol bilah kemajuan dengan tahapan langkah (lihat SetStep ) dan menggambar ulang bilah untuk mencerminkan posisi baru. |
Keterangan
Kontrol bilah kemajuan adalah jendela yang dapat digunakan aplikasi untuk menunjukkan kemajuan operasi yang panjang. Ini terdiri dari persegi panjang yang secara bertahap diisi, dari kiri ke kanan, dengan warna sorotan sistem saat operasi berlangsung.
Kontrol bilah kemajuan memiliki rentang dan posisi saat ini. Rentang mewakili total durasi operasi, dan posisi saat ini mewakili kemajuan yang telah dilakukan aplikasi terhadap penyelesaian operasi. Prosedur jendela menggunakan rentang dan posisi saat ini untuk menentukan persentase bilah kemajuan untuk diisi dengan warna sorotan. Karena rentang dan nilai posisi saat ini dinyatakan sebagai bilangan bulat yang ditandatangani, rentang kemungkinan nilai posisi saat ini adalah dari -2.147.483.648 hingga 2.147.483.647 inklusif.
Untuk informasi selengkapnya tentang menggunakan CProgressCtrl
, lihat Kontrol dan Menggunakan CProgressCtrl
.
Hierarki Warisan
CProgressCtrl
Persyaratan
Header: afxcmn.h
CProgressCtrl::CProgressCtrl
Membuat CProgressCtrl
objek.
CProgressCtrl();
Keterangan
Setelah membuat CProgressCtrl
objek, panggil CProgressCtrl::Create
untuk membuat kontrol bilah kemajuan.
Contoh
// Create a progress control object on the stack.
CProgressCtrl myCtrl;
// Create a progress control object on the heap.
CProgressCtrl *pmyCtrl = new CProgressCtrl;
CProgressCtrl::Create
Membuat kontrol bilah kemajuan dan melampirkannya ke CProgressCtrl
objek.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parameter
dwStyle
Menentukan gaya kontrol bilah kemajuan. Terapkan kombinasi gaya jendela yang ditentukan dalam CreateWindow
Windows SDK, selain gaya kontrol bilah kemajuan berikut, ke kontrol:
PBS_VERTICAL
Menampilkan informasi kemajuan secara vertikal, atas ke bawah. Tanpa bendera ini, kontrol bilah kemajuan ditampilkan secara horizontal, kiri ke kanan.PBS_SMOOTH
Menampilkan pengisian bertahap dan halus dalam kontrol bilah kemajuan. Tanpa bendera ini, kontrol akan diisi dengan blok.
rect
Menentukan ukuran dan posisi kontrol bilah kemajuan. Ini bisa berupa CRect
objek atau RECT
struktur. Karena kontrol harus merupakan jendela anak, koordinat yang ditentukan relatif terhadap area klien .pParentWnd
pParentWnd
Menentukan jendela induk kontrol bilah kemajuan, biasanya .CDialog
Ini tidak boleh NULL.
nID
Menentukan ID kontrol bilah kemajuan.
Tampilkan Nilai
TRUE jika CProgressCtrl
objek berhasil dibuat; jika tidak, FALSE.
Keterangan
Anda membuat CProgressCtrl
objek dalam dua langkah. Pertama, panggil konstruktor, yang membuat CProgressCtrl
objek, lalu panggil Create
, yang membuat kontrol bilah kemajuan.
Contoh
CProgressCtrl myCtrl;
// Create a smooth child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE | PBS_SMOOTH, CRect(10, 10, 200, 30),
pParentWnd, IDC_PROGRESSCTRL);
CProgressCtrl::CreateEx
Membuat kontrol (jendela anak) dan mengaitkannya dengan CProgressCtrl
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 dwExStyle
parameter untuk CreateWindowEx
di Windows SDK.
dwStyle
Menentukan gaya kontrol bilah kemajuan. Terapkan kombinasi gaya jendela apa pun yang dijelaskan dalam CreateWindow
Windows SDK.
rect
Referensi ke struktur yang RECT
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 Create
untuk menerapkan gaya Windows yang diperluas, yang ditentukan oleh preface WS_EX_
gaya windows yang diperluas .
CProgressCtrl::GetBarColor
Mendapatkan warna bilah indikator kemajuan untuk kontrol bilah kemajuan saat ini.
COLORREF GetBarColor() const;
Tampilkan Nilai
Warna bilah kemajuan saat ini, direpresentasikan sebagai COLORREF
nilai, atau CLR_DEFAULT
jika warna bilah indikator kemajuan adalah warna default.
Keterangan
Metode ini mengirim PBM_GETBARCOLOR
pesan, yang dijelaskan dalam Windows SDK.
CProgressCtrl::GetBkColor
Mendapatkan warna latar belakang bilah kemajuan saat ini.
COLORREF GetBkColor() const;
Tampilkan Nilai
Warna latar belakang bilah kemajuan saat ini, diwakili sebagai COLORREF
nilai.
Keterangan
Metode ini mengirim PBM_GETBKCOLOR
pesan, yang dijelaskan dalam Windows SDK.
CProgressCtrl::GetPos
Mengambil posisi bilah kemajuan saat ini.
int GetPos();
Tampilkan Nilai
Posisi kontrol bilah kemajuan.
Keterangan
Posisi kontrol bilah kemajuan bukan lokasi fisik di layar, melainkan berada di antara rentang atas dan bawah yang ditunjukkan dalam SetRange
.
Contoh
CProgressCtrl myCtrl;
// Create a child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(10, 10, 200, 30), pParentWnd,
IDC_PROGRESSCTRL);
// Set the new position to half of the current position.
myCtrl.SetPos(myCtrl.GetPos() / 2);
CProgressCtrl::GetRange
Mendapatkan batas bawah dan atas saat ini, atau rentang, dari kontrol bilah kemajuan.
void GetRange(
int& nLower,
int& nUpper);
Parameter
nLower
Referensi ke bilangan bulat yang menerima batas bawah kontrol bilah kemajuan.
nUpper
Referensi ke bilangan bulat yang menerima batas atas kontrol bilah kemajuan.
Keterangan
Fungsi ini menyalin nilai batas bawah dan atas ke bilangan bulat yang dirujuk oleh nLower
dan nUpper
, masing-masing.
Contoh
CProgressCtrl myCtrl;
// Create a child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(10, 10, 200, 30), pParentWnd,
IDC_PROGRESSCTRL);
// Set the position to be one-fourth of the total range.
int nLower, nUpper;
myCtrl.GetRange(nLower, nUpper);
myCtrl.SetPos((nUpper - nLower) / 4);
CProgressCtrl::GetState
Mendapatkan status kontrol bilah kemajuan saat ini.
int GetState() const;
Tampilkan Nilai
Status kontrol bilah kemajuan saat ini, yang merupakan salah satu nilai berikut:
Nilai | Provinsi |
---|---|
PBST_NORMAL | Dalam proses |
PBST_ERROR | Kesalahan |
PBST_PAUSED | Dijeda |
Keterangan
Metode ini mengirim PBM_GETSTATE
pesan, yang dijelaskan dalam Windows SDK.
Contoh
Contoh kode pertama mendefinisikan variabel, m_progressCtrl
, yang digunakan untuk mengakses kontrol bilah kemajuan secara terprogram. Variabel ini digunakan dalam contoh berikutnya.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Contoh kode berikutnya mengambil status kontrol bilah kemajuan saat ini.
// Display the current state of the progress control.
CString str = _T("The progress control state is ");
int progState = m_progressCtrl.GetState();
if (progState == PBST_NORMAL)
str += _T("NORMAL");
else if (progState == PBST_PAUSED)
str += _T("PAUSED");
else if (progState == PBST_ERROR)
str += _T("ERROR");
else
str += _T("unknown");
AfxMessageBox(str, MB_ICONEXCLAMATION);
CProgressCtrl::GetStep
Mengambil tahapan langkah untuk bilah kemajuan kontrol bilah kemajuan saat ini.
int GetStep() const;
Tampilkan Nilai
Tahapan langkah dari bilah kemajuan.
Keterangan
Kenaikan langkah adalah jumlah panggilan untuk CProgressCtrl::StepIt
meningkatkan posisi bilah kemajuan saat ini.
Metode ini mengirim PBM_GETSTEP
pesan, yang dijelaskan dalam Windows SDK.
Contoh
Contoh kode pertama mendefinisikan variabel, m_progressCtrl
, yang digunakan untuk mengakses kontrol bilah kemajuan secara terprogram. Variabel ini digunakan dalam contoh berikutnya.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Contoh kode berikutnya mengambil tahapan langkah kontrol bilah kemajuan saat ini.
// Get the step increment for the progress control.
CString str;
int incr = m_progressCtrl.GetStep();
str.Format(_T("The step increment is %d."), incr);
AfxMessageBox(str, MB_ICONEXCLAMATION);
CProgressCtrl::OffsetPos
Memajukan posisi kontrol bilah kemajuan saat ini dengan kenaikan yang ditentukan oleh nPos
dan menggambar ulang bilah untuk mencerminkan posisi baru.
int OffsetPos(int nPos);
Parameter
nPos
Jumlah untuk memajukan posisi.
Tampilkan Nilai
Posisi kontrol bilah kemajuan sebelumnya.
Contoh
CProgressCtrl myCtrl;
// Create a child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(10, 10, 200, 30), pParentWnd,
IDC_PROGRESSCTRL);
// Offset the position by one-fourth of the total range.
int nLower, nUpper;
myCtrl.GetRange(nLower, nUpper);
myCtrl.OffsetPos((nUpper - nLower) / 4);
CProgressCtrl::SetBarColor
Mengatur warna bilah indikator kemajuan di kontrol bilah kemajuan saat ini.
COLORREF SetBarColor(COLORREF clrBar);
Parameter
clrBar
[di] COLORREF
Nilai yang menentukan warna baru bilah indikator kemajuan. Tentukan CLR_DEFAULT
untuk menyebabkan bilah kemajuan menggunakan warna defaultnya.
Tampilkan Nilai
Warna sebelumnya dari bilah indikator kemajuan, direpresentasikan sebagai COLORREF
nilai, atau CLR_DEFAULT
jika warna bilah indikator kemajuan adalah warna default.
Keterangan
Metode ini SetBarColor
mengatur warna bilah kemajuan hanya jika tema Windows Vista tidak berlaku.
Metode ini mengirim PBM_SETBARCOLOR
pesan, yang dijelaskan dalam Windows SDK.
Contoh
Contoh kode pertama mendefinisikan variabel, m_progressCtrl
, yang digunakan untuk mengakses kontrol bilah kemajuan secara terprogram. Variabel ini digunakan dalam contoh berikutnya.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Contoh kode berikutnya mengubah warna bilah kemajuan menjadi merah, hijau, biru, atau default.
// Set the progress bar color to red, green, blue, or
// the system default. The SetBarColor method has an
// effect only if the Windows system theme is Classic.
void CCProgressCtrl_s1Dlg::OnSetbarcolorRed()
{
m_progressCtrl.SetBarColor(RGB(255, 0, 0));
}
void CCProgressCtrl_s1Dlg::OnSetbarcolorGreen()
{
m_progressCtrl.SetBarColor(RGB(0, 255, 0));
}
void CCProgressCtrl_s1Dlg::OnSetbarcolorBlue()
{
m_progressCtrl.SetBarColor(RGB(0, 0, 255));
}
void CCProgressCtrl_s1Dlg::OnSetbarcolorOri()
{
m_progressCtrl.SetBarColor(CLR_DEFAULT);
}
CProgressCtrl::SetBkColor
Mengatur warna latar belakang untuk bilah kemajuan.
COLORREF SetBkColor(COLORREF clrNew);
Parameter
clrNew
Nilai COLORREF
yang menentukan warna latar belakang baru. Tentukan nilai untuk CLR_DEFAULT
menggunakan warna latar belakang default untuk bilah kemajuan.
Tampilkan Nilai
Nilai COLORREF
yang menunjukkan warna latar belakang sebelumnya, atau CLR_DEFAULT
jika warna latar belakang adalah warna default.
Contoh
CProgressCtrl myCtrl;
// Create a smooth child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE | PBS_SMOOTH, CRect(10, 10, 200, 30),
pParentWnd, IDC_PROGRESSCTRL);
// Set the background color to red.
myCtrl.SetBkColor(RGB(255, 0, 0));
CProgressCtrl::SetMarquee
Mengaktifkan atau menonaktifkan mode marquee untuk kontrol bilah kemajuan saat ini.
BOOL SetMarquee(
BOOL fMarqueeMode,
int nInterval);
Parameter
fMarqueeMode
[di] TRUE
untuk mengaktifkan mode marquee, atau FALSE
untuk mematikan mode marquee.
nInterval
[di] Waktu dalam milidetik antara pembaruan animasi marquee.
Tampilkan Nilai
Metode ini selalu mengembalikan TRUE
.
Keterangan
Ketika mode marquee diaktifkan, bilah kemajuan dianimasikan dan menggulir seperti tanda di marquee teatik.
Metode ini mengirim PBM_SETMARQUEE
pesan, yang dijelaskan dalam Windows SDK.
Contoh
Contoh kode pertama mendefinisikan variabel, m_progressCtrl
, yang digunakan untuk mengakses kontrol bilah kemajuan secara terprogram. Variabel ini digunakan dalam contoh berikutnya.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Contoh kode berikutnya memulai dan menghentikan animasi gulir marquee.
// Turn the marquee animation on or off.
void CCProgressCtrl_s1Dlg::OnSetmarqueeOn()
{
m_progressCtrl.SetMarquee(TRUE, nMarqueeInterval);
}
void CCProgressCtrl_s1Dlg::OnSetmarqueeOff()
{
m_progressCtrl.SetMarquee(FALSE, nMarqueeInterval);
}
CProgressCtrl::SetPos
Mengatur posisi kontrol bilah kemajuan saat ini seperti yang ditentukan oleh nPos
dan menggambar ulang bilah untuk mencerminkan posisi baru.
int SetPos(int nPos);
Parameter
nPos
Posisi baru kontrol bilah kemajuan.
Tampilkan Nilai
Posisi kontrol bilah kemajuan sebelumnya.
Keterangan
Posisi kontrol bilah kemajuan bukan lokasi fisik di layar, melainkan berada di antara rentang atas dan bawah yang ditunjukkan dalam SetRange
.
Contoh
CProgressCtrl myCtrl;
// Create a child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(10, 10, 200, 30), pParentWnd,
IDC_PROGRESSCTRL);
// Set the range to be 0 to 100.
myCtrl.SetRange(0, 100);
// Set the position to be half, 50.
myCtrl.SetPos(50);
CProgressCtrl::SetRange
Mengatur batas atas dan bawah rentang kontrol bilah kemajuan dan menggambar ulang bilah untuk mencerminkan rentang baru.
void SetRange(
short nLower,
short nUpper);
void SetRange32(
int nLower,
int nUpper);
Parameter
nLower
Menentukan batas bawah rentang (defaultnya adalah nol).
nUpper
Menentukan batas atas rentang (defaultnya adalah 100).
Keterangan
Fungsi SetRange32
anggota mengatur rentang 32-bit untuk kontrol kemajuan.
Contoh
CProgressCtrl myCtrl;
// Create a smooth child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE | PBS_SMOOTH, CRect(10, 10, 200, 30),
pParentWnd, IDC_PROGRESSCTRL);
// Set the range to be 0 to 100.
myCtrl.SetRange(0, 100);
CProgressCtrl::SetState
Mengatur status kontrol bilah kemajuan saat ini.
int SetState(int iState);
Parameter
iState
[di] Status untuk mengatur bilah kemajuan. Gunakan salah satu dari nilai berikut:
PBST_NORMAL
- Sedang berlangsungPBST_ERROR
-KesalahanPBST_PAUSED
-Berhenti
Tampilkan Nilai
Status sebelumnya dari kontrol bilah kemajuan saat ini.
Keterangan
Metode ini mengirim PBM_SETSTATE
pesan, yang dijelaskan dalam Windows SDK.
Contoh
Contoh kode pertama mendefinisikan variabel, m_progressCtrl
, yang digunakan untuk mengakses kontrol bilah kemajuan secara terprogram. Variabel ini digunakan dalam contoh berikutnya.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Contoh kode berikutnya mengatur status kontrol bilah kemajuan saat ini ke Dijeda atau Sedang Berlangsung.
// Set the progrees control to normal or paused state.
void CCProgressCtrl_s1Dlg::OnSetstateNormal()
{
m_progressCtrl.SetState(PBST_NORMAL);
}
void CCProgressCtrl_s1Dlg::OnSetstatePaused()
{
m_progressCtrl.SetState(PBST_PAUSED);
}
CProgressCtrl::SetStep
Menentukan tahapan langkah untuk kontrol bilah kemajuan.
int SetStep(int nStep);
Parameter
nStep
Tahapan langkah baru.
Tampilkan Nilai
Tahapan langkah sebelumnya.
Keterangan
Tahapan langkah adalah jumlah panggilan untuk CProgressCtrl::StepIt
meningkatkan posisi bilah kemajuan saat ini.
Kenaikan langkah default adalah 10.
Contoh
CProgressCtrl myCtrl;
// Create a child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(10, 10, 200, 30), pParentWnd,
IDC_PROGRESSCTRL);
// Set the size to be 1/10 of the total range.
int nLower, nUpper;
myCtrl.GetRange(nLower, nUpper);
myCtrl.SetStep((nUpper - nLower) / 10);
CProgressCtrl::StepIt
Memajukan posisi saat ini untuk kontrol bilah kemajuan dengan tahapan langkah dan menggambar ulang bilah untuk mencerminkan posisi baru.
int StepIt();
Tampilkan Nilai
Posisi kontrol bilah kemajuan sebelumnya.
Keterangan
Tahapan langkah diatur oleh CProgressCtrl::SetStep
fungsi anggota.
Contoh
CProgressCtrl myCtrl;
// Create a child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(10, 10, 200, 30), pParentWnd,
IDC_PROGRESSCTRL);
// Advance the position to the next step.
myCtrl.StepIt();