다음을 통해 공유


진행률 표시줄 컨트롤 정보

진행률 표시줄은 애플리케이션이 긴 작업의 진행률을 나타내는 데 사용할 수 있는 창입니다.

작업이 진행됨에 따라 애니메이션 효과를 주는 사각형으로 구성됩니다.

다음 그림은 비주얼 스타일을 사용하지 않는 진행률 표시줄을 보여 줍니다.

screen shot of a progress bar that adds rectangles in a line to indicate progress

다음 그림은 시각적 스타일을 사용하는 진행률 표시줄을 보여 줍니다. 컨트롤의 모양은 운영 체제 및 선택한 테마에 따라 달라집니다. 자세한 내용은 시각적 스타일 사용을 참조하세요.

screen shot of a progress bar that lengthens an animated green rectangle to indicate progress

자세한 내용은 다음 제목 아래에 포함되어 있습니다.

진행률 표시줄 사용

CreateWindowEx 함수를 사용하여 PROGRESS_CLASS 창 클래스를 지정하는 방법으로 진행률 표시줄을 만들 수 있습니다. 이 창 클래스는 공용 컨트롤 DLL이 로드될 때 등록됩니다. 자세한 내용은 공용 컨트롤 정보를 참조하세요.

컨트롤은 진행률 컨트롤이라는 Microsoft Visual Studio 도구 상자에서도 사용할 수 있습니다.

범위 및 현재 위치

진행률 표시줄의 범위는 작업의 전체 기간을 나타내며 현재 위치는 애플리케이션이 작업을 완료하기 위해 수행한 진행률을 나타냅니다. 창 프로시저는 범위와 현재 위치를 사용하여 진행률 표시줄에서 강조 색으로 채울 백분율을 결정합니다.

범위 값을 설정하지 않으면 시스템에서 최소값을 0으로 설정하고 최대값을 100으로 설정합니다. PBM_SETRANGE 메시지를 사용하여 범위를 편리한 정수로 조정할 수 있습니다.

진행률 표시줄은 현재 위치를 설정하는 데 사용할 수 있는 여러 메시지를 제공합니다. PBM_SETPOS 메시지는 위치를 지정된 값으로 설정합니다. PBM_DELTAPOS 메시지는 현재 위치에 지정된 값을 추가하여 위치를 앞으로 이동합니다.

PBM_SETSTEP 메시지를 사용하면 진행률 표시줄에 대한 단계 증분을 지정할 수 있습니다. 그 후에 진행률 표시줄에 PBM_STEPIT 메시지를 보낼 때마다 현재 위치가 지정된 증분만큼 앞으로 이동합니다. 기본적으로 단계 증분은 10으로 설정되어 있습니다.

기본 진행률 표시줄 메시지 처리

이 섹션에서는 PROGRESS_CLASS 클래스의 창 프로시저에서 처리하는 메시지에 대해 설명합니다.

메시지 수행된 처리
WM_CREATE 초기 구조체를 할당하고 초기화합니다.
WM_DESTROY 진행률 표시줄과 관련된 모든 리소스를 해제합니다.
WM_ERASEBKGND 진행률 표시줄의 배경과 테두리를 그립니다.
WM_GETFONT 현재 글꼴에 대한 핸들을 반환합니다. 진행률 표시줄은 현재 텍스트를 그리지 않으므로 이 메시지를 보내는 것은 컨트롤에 영향을 주지 않습니다.
WM_PAINT 진행률 표시줄을 그립니다. wParam 매개 변수가 NULL이 아닌 경우 컨트롤은 값이 HDC라고 가정하고 해당 디바이스 컨텍스트를 사용하여 그립니다.
WM_SETFONT 핸들을 새 글꼴에 저장하고 핸들을 이전 글꼴로 반환합니다. 진행률 표시줄은 현재 텍스트를 그리지 않으므로 이 메시지를 보내는 것은 컨트롤에 영향을 주지 않습니다.

 

움직이는 텍스트 스타일

PBS_MARQUEE 스타일로 진행률 표시줄 컨트롤을 만들면 작업을 표시하지만 완료된 작업의 비율을 나타내지 않는 방식으로 애니메이션 효과를 적용할 수 있습니다. 진행률 표시줄의 강조 표시된 부분이 표시줄의 길이를 따라 반복적으로 이동합니다. PBM_SETMARQUEE 메시지를 보내 애니메이션을 시작 및 중지하고 속도를 제어할 수 있습니다. 움직이는 텍스트 진행률 막대에는 범위 또는 위치가 없습니다.

다음 그림은 움직이는 텍스트 모드의 진행률 표시줄을 보여 줍니다. 강조 표시된 부분이 표시줄을 가로질러 이동합니다.

screen shot of a progress bar that moves a green highlight across a gray rectangle to indicate progress