비고
MFC(Microsoft Foundation Classs) 라이브러리는 계속 지원됩니다. 그러나 더 이상 기능을 추가하거나 설명서를 업데이트하지 않습니다.
Windows의 공용 진행률 표시줄 컨트롤의 기능을 제공합니다.
구문
class CProgressCtrl : public CWnd
멤버
공용 생성자
| 속성 | 설명 |
|---|---|
CProgressCtrl::CProgressCtrl |
CProgressCtrl 개체를 생성합니다. |
공용 메서드
| 속성 | 설명 |
|---|---|
CProgressCtrl::Create |
진행률 표시줄 컨트롤을 만들어 개체에 CProgressCtrl 연결합니다. |
CProgressCtrl::CreateEx |
지정된 Windows 확장 스타일을 사용하여 진행률 컨트롤을 만들고 개체에 CProgressCtrl 연결합니다. |
CProgressCtrl::GetBarColor |
현재 진행률 표시줄 컨트롤의 진행률 표시줄 색을 가져옵니다. |
CProgressCtrl::GetBkColor |
현재 진행률 표시줄의 배경색을 가져옵니다. |
CProgressCtrl::GetPos |
진행률 표시줄의 현재 위치를 가져옵니다. |
CProgressCtrl::GetRange |
진행률 표시줄 컨트롤 범위의 하한 및 상한을 가져옵니다. |
CProgressCtrl::GetState |
현재 진행률 표시줄 컨트롤의 상태를 가져옵니다. |
CProgressCtrl::GetStep |
현재 진행률 표시줄 컨트롤의 진행률 표시줄에 대한 단계 증분을 검색합니다. |
CProgressCtrl::OffsetPos |
진행률 표시줄 컨트롤의 현재 위치를 지정된 증분으로 이동하고 막대를 다시 그려 새 위치를 반영합니다. |
CProgressCtrl::SetBarColor |
현재 진행률 표시줄 컨트롤에서 진행률 표시줄의 색을 설정합니다. |
CProgressCtrl::SetBkColor |
진행률 표시줄의 배경색을 설정합니다. |
CProgressCtrl::SetMarquee |
현재 진행률 표시줄 컨트롤에 대해 선택 윤곽 모드를 설정하거나 해제합니다. |
CProgressCtrl::SetPos |
진행률 표시줄 컨트롤의 현재 위치를 설정하고 막대를 다시 그려 새 위치를 반영합니다. |
CProgressCtrl::SetRange |
진행률 표시줄 컨트롤의 최소 및 최대 범위를 설정하고 막대를 다시 그려 새 범위를 반영합니다. |
CProgressCtrl::SetState |
현재 진행률 표시줄 컨트롤의 상태를 설정합니다. |
CProgressCtrl::SetStep |
진행률 표시줄 컨트롤의 단계 증분을 지정합니다. |
CProgressCtrl::StepIt |
진행률 표시줄 컨트롤의 현재 위치를 단계 증분(참조 SetStep)으로 이동하고 막대를 다시 그려 새 위치를 반영합니다. |
설명
진행률 표시줄 컨트롤은 애플리케이션이 긴 작업의 진행률을 나타내는 데 사용할 수 있는 창입니다. 작업이 진행됨에 따라 시스템 강조 색을 사용하여 왼쪽에서 오른쪽으로 점차 채워지는 사각형으로 구성됩니다.
진행률 표시줄 컨트롤에는 범위와 현재 위치가 있습니다. 범위는 작업의 총 기간을 나타내며, 현재 위치는 애플리케이션이 작업을 완료하기 위해 수행한 진행률을 나타냅니다. 창 프로시저는 범위와 현재 위치를 사용하여 진행률 표시줄에서 강조 색으로 채울 백분율을 결정합니다. 범위와 현재 위치 값은 부가 정수로 표현되므로 현재 위치 값의 가능한 범위는 -2,147,483,648에서 2,147,483,647까지입니다.
사용 CProgressCtrl방법에 대한 자세한 내용은 컨트롤 및CProgressCtrl참조하세요.
상속 계층 구조
CProgressCtrl
요구 사항
머리글:afxcmn.h
CProgressCtrl::CProgressCtrl
CProgressCtrl 개체를 생성합니다.
CProgressCtrl();
설명
개체를 생성한 CProgressCtrl 후 진행률 표시줄 컨트롤을 만들기 위해 호출 CProgressCtrl::Create 합니다.
예시
// Create a progress control object on the stack.
CProgressCtrl myCtrl;
// Create a progress control object on the heap.
CProgressCtrl *pmyCtrl = new CProgressCtrl;
CProgressCtrl::Create
진행률 표시줄 컨트롤을 만들어 개체에 CProgressCtrl 연결합니다.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
매개 변수
dwStyle
진행률 표시줄 컨트롤의 스타일을 지정합니다. 다음 진행률 표시줄 컨트롤 스타일 외에도 Windows SDK에 CreateWindow 설명된 창 스타일의 조합을 컨트롤에 적용합니다.
PBS_VERTICAL진행률 정보를 위쪽에서 아래쪽으로 세로로 표시합니다. 이 플래그가 없으면 진행률 표시줄 컨트롤이 왼쪽에서 오른쪽으로 가로로 표시됩니다.PBS_SMOOTH진행률 표시줄 컨트롤에 점진적인 부드러운 채우기를 표시합니다. 이 플래그가 없으면 컨트롤이 블록으로 채워지게 됩니다.
rect
진행률 표시줄 컨트롤의 크기와 위치를 지정합니다. 개체 또는 CRect 구조체 RECT 일 수 있습니다. 컨트롤은 자식 창이어야 하므로 지정된 좌표는 클라이언트 영역을 pParentWnd기준으로 합니다.
pParentWnd
진행률 표시줄 컨트롤의 부모 창(일반적으로 .)을 CDialog지정합니다. NULL이 아니어야 합니다.
nID
진행률 표시줄 컨트롤의 ID를 지정합니다.
반환 값
개체가 CProgressCtrl 성공적으로 만들어지면 TRUE이고, 그렇지 않으면 FALSE입니다.
설명
두 단계로 개체를 CProgressCtrl 생성합니다. 먼저 개체를 만드는 CProgressCtrl 생성자를 호출한 다음 진행률 표시줄 컨트롤을 만드는 호출 Create합니다.
예시
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
컨트롤(자식 창)을 만들어 개체와 연결 CProgressCtrl 합니다.
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
매개 변수
dwExStyle
만들 컨트롤의 확장 스타일을 지정합니다. 확장된 Windows 스타일 목록은 Windows SDK의 매개 변수 dwExStyle 를 참조 CreateWindowEx 하세요.
dwStyle
진행률 표시줄 컨트롤의 스타일을 지정합니다. Windows SDK에 CreateWindow 설명된 창 스타일의 조합을 적용합니다.
rect
생성할 RECT 창의 크기와 위치를 설명하는 구조체에 대한 참조로, 클라이언트 좌표로 pParentWnd표시됩니다.
pParentWnd
컨트롤의 부모 창에 대한 포인터입니다.
nID
컨트롤의 자식 창 ID입니다.
반환 값
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
Windows 확장 스타일 서문CreateEx으로 지정된 확장 Windows 스타일을 적용하는 대신 Create 사용합니다WS_EX_.
CProgressCtrl::GetBarColor
현재 진행률 표시줄 컨트롤의 진행률 표시줄 색을 가져옵니다.
COLORREF GetBarColor() const;
반환 값
현재 진행률 표시줄의 색으로 COLORREF , 값으로 표시되거나 CLR_DEFAULT 진행률 표시줄 색이 기본 색인 경우입니다.
설명
이 메서드는 PBM_GETBARCOLOR Windows SDK에 설명된 메시지를 보냅니다.
CProgressCtrl::GetBkColor
현재 진행률 표시줄의 배경색을 가져옵니다.
COLORREF GetBkColor() const;
반환 값
값으로 표시되는 현재 진행률 표시줄의 배경색입니다 COLORREF .
설명
이 메서드는 PBM_GETBKCOLOR Windows SDK에 설명된 메시지를 보냅니다.
CProgressCtrl::GetPos
진행률 표시줄의 현재 위치를 검색합니다.
int GetPos();
반환 값
진행률 표시줄 컨트롤의 위치입니다.
설명
진행률 표시줄 컨트롤의 위치는 화면의 실제 위치가 아니라 표시된 상한 범위와 하위 범위 사이에 있습니다 SetRange.
예시
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
진행률 표시줄 컨트롤의 현재 하한 및 상한 또는 범위를 가져옵니다.
void GetRange(
int& nLower,
int& nUpper);
매개 변수
nLower
진행률 표시줄 컨트롤의 하한을 수신하는 정수에 대한 참조입니다.
nUpper
진행률 표시줄 컨트롤의 상한을 수신하는 정수에 대한 참조입니다.
설명
이 함수는 하한값과 상한값을 각각 참조 nLower 하는 정수로 nUpper복사합니다.
예시
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
현재 진행률 표시줄 컨트롤의 상태를 가져옵니다.
int GetState() const;
반환 값
다음 값 중 하나인 현재 진행률 표시줄 컨트롤의 상태입니다.
| 값 | State(상태) |
|---|---|
| PBST_NORMAL | 진행 중 |
| PBST_ERROR | Error |
| PBST_PAUSED | 일시 중지됨 |
설명
이 메서드는 PBM_GETSTATE Windows SDK에 설명된 메시지를 보냅니다.
예시
첫 번째 코드 예제는 진행률 표시줄 컨트롤에 프로그래밍 방식으로 액세스하는 데 사용되는 변수 m_progressCtrl를 정의합니다. 이 변수는 다음 예제에서 사용됩니다.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
다음 코드 예제에서는 현재 진행률 표시줄 컨트롤의 상태를 검색합니다.
// 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
현재 진행률 표시줄 컨트롤의 진행률 표시줄에 대한 단계 증분을 검색합니다.
int GetStep() const;
반환 값
진행률 표시줄의 단계 증가입니다.
설명
단계 증가는 진행률 표시줄의 현재 위치를 늘리기 위한 CProgressCtrl::StepIt 호출의 양입니다.
이 메서드는 PBM_GETSTEP Windows SDK에 설명된 메시지를 보냅니다.
예시
첫 번째 코드 예제는 진행률 표시줄 컨트롤에 프로그래밍 방식으로 액세스하는 데 사용되는 변수 m_progressCtrl를 정의합니다. 이 변수는 다음 예제에서 사용됩니다.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
다음 코드 예제에서는 현재 진행률 표시줄 컨트롤의 단계 증분을 검색합니다.
// 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
지정 nPos 한 증분으로 진행률 표시줄 컨트롤의 현재 위치를 앞으로 이동하고 막대를 다시 그려 새 위치를 반영합니다.
int OffsetPos(int nPos);
매개 변수
nPos
위치를 전진하는 양입니다.
반환 값
진행률 표시줄 컨트롤의 이전 위치입니다.
예시
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
현재 진행률 표시줄 컨트롤에서 진행률 표시줄의 색을 설정합니다.
COLORREF SetBarColor(COLORREF clrBar);
매개 변수
clrBar
[in] COLORREF 진행률 표시줄의 새 색을 지정하는 값입니다. 진행률 표시줄에서 기본 색을 사용하도록 지정 CLR_DEFAULT 합니다.
반환 값
값으로 COLORREF 표시되거나 CLR_DEFAULT 진행률 표시줄의 색이 기본 색인 경우 진행률 표시줄의 이전 색입니다.
설명
이 메서드는 SetBarColor Windows Vista 테마 가 적용되지 않은 경우에만 진행률 표시줄 색을 설정합니다.
이 메서드는 PBM_SETBARCOLOR Windows SDK에 설명된 메시지를 보냅니다.
예시
첫 번째 코드 예제는 진행률 표시줄 컨트롤에 프로그래밍 방식으로 액세스하는 데 사용되는 변수 m_progressCtrl를 정의합니다. 이 변수는 다음 예제에서 사용됩니다.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
다음 코드 예제에서는 진행률 표시줄의 색을 빨강, 녹색, 파랑 또는 기본값으로 변경합니다.
// 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
진행률 표시줄의 배경색을 설정합니다.
COLORREF SetBkColor(COLORREF clrNew);
매개 변수
clrNew
COLORREF 새 배경색을 지정하는 값입니다.
CLR_DEFAULT 진행률 표시줄에 기본 배경색을 사용할 값을 지정합니다.
반환 값
COLORREF 이전 배경색을 나타내는 값이거나 CLR_DEFAULT 배경색이 기본 색인지 여부를 나타냅니다.
예시
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
현재 진행률 표시줄 컨트롤에 대해 선택 윤곽 모드를 설정하거나 해제합니다.
BOOL SetMarquee(
BOOL fMarqueeMode,
int nInterval);
매개 변수
fMarqueeMode
[in] TRUE 선택 윤곽 모드를 설정하거나 FALSE 선택 모드를 해제합니다.
nInterval
[in] 선택 윤곽 애니메이션 업데이트 사이의 시간(밀리초)입니다.
반환 값
이 메서드는 항상 TRUE을 반환합니다.
설명
선택 윤곽 모드가 켜지면 진행률 표시줄에 애니메이션이 적용되고 극장 윤곽선의 기호처럼 스크롤됩니다.
이 메서드는 PBM_SETMARQUEE Windows SDK에 설명된 메시지를 보냅니다.
예시
첫 번째 코드 예제는 진행률 표시줄 컨트롤에 프로그래밍 방식으로 액세스하는 데 사용되는 변수 m_progressCtrl를 정의합니다. 이 변수는 다음 예제에서 사용됩니다.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
다음 코드 예제에서는 선택 윤곽 스크롤 애니메이션을 시작하고 중지합니다.
// 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
지정한 대로 nPos 진행률 표시줄 컨트롤의 현재 위치를 설정하고 막대를 다시 그려 새 위치를 반영합니다.
int SetPos(int nPos);
매개 변수
nPos
진행률 표시줄 컨트롤의 새 위치입니다.
반환 값
진행률 표시줄 컨트롤의 이전 위치입니다.
설명
진행률 표시줄 컨트롤의 위치는 화면의 실제 위치가 아니라 표시된 상한 범위와 하위 범위 사이에 있습니다 SetRange.
예시
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
진행률 표시줄 컨트롤 범위의 상한과 하한을 설정하고 막대를 다시 그려 새 범위를 반영합니다.
void SetRange(
short nLower,
short nUpper);
void SetRange32(
int nLower,
int nUpper);
매개 변수
nLower
범위의 하한을 지정합니다(기본값은 0).
nUpper
범위의 상한을 지정합니다(기본값은 100).
설명
멤버 함수 SetRange32 는 진행률 컨트롤의 32비트 범위를 설정합니다.
예시
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
현재 진행률 표시줄 컨트롤의 상태를 설정합니다.
int SetState(int iState);
매개 변수
iState
[in] 진행률 표시줄을 설정할 상태입니다. 다음 값 중 하나를 사용합니다.
-
PBST_NORMAL- 진행 중 -
PBST_ERROR-오류 -
PBST_PAUSED-일시 중지
반환 값
현재 진행률 표시줄 컨트롤의 이전 상태입니다.
설명
이 메서드는 PBM_SETSTATE Windows SDK에 설명된 메시지를 보냅니다.
예시
첫 번째 코드 예제는 진행률 표시줄 컨트롤에 프로그래밍 방식으로 액세스하는 데 사용되는 변수 m_progressCtrl를 정의합니다. 이 변수는 다음 예제에서 사용됩니다.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
다음 코드 예제에서는 현재 진행률 표시줄 컨트롤의 상태를 일시 중지 또는 진행 중으로 설정합니다.
// 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
진행률 표시줄 컨트롤의 단계 증분을 지정합니다.
int SetStep(int nStep);
매개 변수
nStep
새로운 단계 증분입니다.
반환 값
이전 단계가 증가합니다.
설명
단계 증가는 진행률 표시줄의 현재 위치를 늘리기 위한 CProgressCtrl::StepIt 호출의 양입니다.
기본 단계 증가는 10입니다.
예시
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
단계 증분으로 진행률 표시줄 컨트롤의 현재 위치를 이동하고 막대를 다시 그려 새 위치를 반영합니다.
int StepIt();
반환 값
진행률 표시줄 컨트롤의 이전 위치입니다.
설명
단계 증가는 멤버 함수에 CProgressCtrl::SetStep 의해 설정됩니다.
예시
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();