CProgressCtrl
수업
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
진행률 표시줄 컨트롤의 크기와 위치를 지정합니다. 개체 또는 RECT
구조체 CRect
일 수 있습니다. 컨트롤은 자식 창이어야 하므로 지정된 좌표는 클라이언트 영역을 pParentWnd
기준으로 합니다.
pParentWnd
진행률 표시줄 컨트롤의 부모 창(일반적으로 .)을 CDialog
지정합니다. NULL이 아니어야 합니다.
nID
진행률 표시줄 컨트롤의 ID를 지정합니다.
Return Value
개체가 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의 매개 변수 CreateWindowEx
를 참조 dwExStyle
하세요.
dwStyle
진행률 표시줄 컨트롤의 스타일을 지정합니다. Windows SDK에 CreateWindow
설명된 창 스타일의 조합을 적용합니다.
rect
생성할 RECT
창의 크기와 위치를 설명하는 구조체에 대한 참조로, 클라이언트 좌표로 pParentWnd
표시됩니다.
pParentWnd
컨트롤의 부모 창에 대한 포인터입니다.
nID
컨트롤의 자식 창 ID입니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
Windows 확장 스타일 서문WS_EX_
으로 지정된 확장 Windows 스타일을 적용하는 대신 Create
사용합니다CreateEx
.
CProgressCtrl::GetBarColor
현재 진행률 표시줄 컨트롤의 진행률 표시줄 색을 가져옵니다.
COLORREF GetBarColor() const;
Return Value
현재 진행률 표시줄의 색으로 COLORREF
, 값으로 표시되거나 CLR_DEFAULT
진행률 표시줄 색이 기본 색인 경우입니다.
설명
이 메서드는 PBM_GETBARCOLOR
Windows SDK에 설명된 메시지를 보냅니다.
CProgressCtrl::GetBkColor
현재 진행률 표시줄의 배경색을 가져옵니다.
COLORREF GetBkColor() const;
Return Value
값으로 표시되는 현재 진행률 표시줄의 배경색입니다 COLORREF
.
설명
이 메서드는 PBM_GETBKCOLOR
Windows SDK에 설명된 메시지를 보냅니다.
CProgressCtrl::GetPos
진행률 표시줄의 현재 위치를 검색합니다.
int GetPos();
Return Value
진행률 표시줄 컨트롤의 위치입니다.
설명
진행률 표시줄 컨트롤의 위치는 화면의 실제 위치가 아니라 표시된 상한 범위와 하위 범위 사이에 있습니다 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;
Return Value
다음 값 중 하나인 현재 진행률 표시줄 컨트롤의 상태입니다.
값 | 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;
Return Value
진행률 표시줄의 단계 증가입니다.
설명
단계 증가는 진행률 표시줄의 현재 위치를 늘리기 위한 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
위치를 전진하는 양입니다.
Return Value
진행률 표시줄 컨트롤의 이전 위치입니다.
예시
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
합니다.
Return Value
값으로 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
진행률 표시줄에 기본 배경색을 사용할 값을 지정합니다.
Return Value
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] 선택 윤곽 애니메이션 업데이트 사이의 시간(밀리초)입니다.
Return Value
이 메서드는 항상 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
진행률 표시줄 컨트롤의 새 위치입니다.
Return Value
진행률 표시줄 컨트롤의 이전 위치입니다.
설명
진행률 표시줄 컨트롤의 위치는 화면의 실제 위치가 아니라 표시된 상한 범위와 하위 범위 사이에 있습니다 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
-일시 중지
Return Value
현재 진행률 표시줄 컨트롤의 이전 상태입니다.
설명
이 메서드는 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
새로운 단계 증분입니다.
Return Value
이전 단계가 증가합니다.
설명
단계 증가는 진행률 표시줄의 현재 위치를 늘리기 위한 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();
Return Value
진행률 표시줄 컨트롤의 이전 위치입니다.
설명
단계 증가는 멤버 함수에 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();