Bagikan melalui


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

CObject

CCmdTarget

CWnd

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 berlangsung
  • PBST_ERROR -Kesalahan
  • PBST_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();

Lihat juga

Sampel MFC CMNCTRL2
CWnd Kelas
Bagan Hierarki