Visual Studio 2010 버전을 사용할 경우 이는 대단히 간단한 것이다.
CFrameWnd 의 멤버 변수인 아래 세 개의 함수로 구현할 수 있다.
- SetProgressBarState
- SetProgressBarRange
- SetProgressBarPosition
SetProgressBarState
void SetProgressBarState(
TBPFLAG tbpFlags
);
Progress 의 상태를 설정하는 함수로 인자 아래와 같은 인자를 넘겨줄 수 있다.
TBPF_NOPROGRESS, TBPF_INDETERMINATE, TBPF_NORMAL, TBPF_ERROR, TBPF_PAUSED.
TBPF_NOPROGRESS - Progress 사용하지 않는 상태
TBPF_INDETERMINATE - 끝이 정해지지 않은 상태
TBPF_NORMAL - 기본 상태
TBPF_ERROR - 에러가 발생한 상태로 아래와 같이 붉은색으로 표시 된다.
TBPF_PAUSED - 진행이 멈춘 상태로 아래와 같이 노란색으로 표시 된다.
SetProgressBarRange
void SetProgressBarRange(
int nRangeMin,
int nRangeMax
);
Progress 표시 범위 설정하는 함수로 최소값과 최대값을 전달하여 설정할 수 있다.
SetProgressBarPosition
void SetProgressBarPosition(
int nProgressPos
);
Progress 의 현재 값을 설정하는 함수.
이 함수 사용에 주의할 점은 SetProgressBarState 에서 TBPF_NOPROGRESS, TBPF_INDETERMINATE 에서 설정을하고 SetProgressBarPosition 함수가 수행이 되면 Progress Bar 는 TBPF_NORMAL 상태로 출력하게 된다.
아래 코드는 간단한 사용 예로 실제 진행에 대하 것은 빠진 상태이다.
m_pFrame = (CMainFrame*)GetParentFrame();
switch ( m_cmbProgressType.GetCurSel() )
{
case 1: // TBPFLAG::TBPF_INDETERMINATE
m_pFrame->SetProgressBarState( TBPFLAG::TBPF_INDETERMINATE );
TRACE("Display Progress TBPFLAG::TBPF_INDETERMINATE \n");
break;
case 2: // TBPFLAG::TBPF_NORMAL
m_pFrame->SetProgressBarState( TBPFLAG::TBPF_NORMAL );
m_pFrame->SetProgressBarRange( 0, 100 );
m_pFrame->SetProgressBarPosition( 72 );
TRACE("Display Progress TBPFLAG::TBPF_NORMAL \n");
break;
case 3: // TBPFLAG::TBPF_ERROR
m_pFrame->SetProgressBarState( TBPFLAG::TBPF_ERROR );
m_pFrame->SetProgressBarRange( 0, 100 );
m_pFrame->SetProgressBarPosition( 72 );
TRACE("Display Progress TBPFLAG::TBPF_ERROR \n");
break;
case 4: // TBPFLAG::TBPF_PAUSED
m_pFrame->SetProgressBarState( TBPFLAG::TBPF_PAUSED );
m_pFrame->SetProgressBarRange( 0, 100 );
m_pFrame->SetProgressBarPosition( 72 );
TRACE("Display Progress TBPFLAG::TBPF_PAUSED \n");
break;
default: // TBPFLAG::TBPF_NOPROGRESS
m_pFrame->SetProgressBarState( TBPFLAG::TBPF_NOPROGRESS );
TRACE("Display Progress TBPFLAG::TBPF_NOPROGRESS \n");
break;
}
<
Original Post : http://neodreamer-dev.tistory.com/529
No comments :
Post a Comment