Programming/MFC

TextProgress 사용하기

_Erato 2006. 9. 27. 19:28

 

 
 
위의 검은색으로 칠한 부분의 Progress의 내용에 텍스트를 삽입하고 색을 바꾸어 칠한다.
 
// 헤더에 멤버를 등록한다.
// 일반 Progress를 멤버로 만들고 클래스명만 바꾸면 된다.
// Bursting Progress
 CTextProgressCtrl m_ctrl_progress_burst;
 
 
// 구현
// 기본 배경색과 Range를 설정하고, 텍스트도 설정한다.
// Progress Ctrl Set
 // Range는 Max Burst Interval로 정한다.
 m_ctrl_progress_burst.SetRange( 0, g_pMainFrame->m_nTimeSliceInterval ) ;
 m_ctrl_progress_burst.SetBkColor( RGB( 0xFF, 0xFF, 0xFF ) ) ;
 m_ctrl_progress_burst.SetBarBkColor( RGB( 0xFF, 0xFF, 0xFF ) ) ;
 m_ctrl_progress_burst.SetBarColor( RGB( 0x00, 0x99, 0x00 ) ) ;
 m_ctrl_progress_burst.SetPos( 0 ) ; 
 CString str ;
 str.Format( _T( "[%d/%dms]  "), 0, g_pMainFrame->m_nTimeSliceInterval ) ;
 m_ctrl_progress_burst.SetWindowText( str ) ;
 m_ctrl_progress_burst.MoveWindow( 490, top_y+9, 232, 20 ) ;
 
 
// 값이 변경될때마다 다음과 같이 설정하면 된다.
// Progress Set Pos
void CDHG2000View::SetProgressPos( int nPos )
{
 // Range는 Max Burst Interval로 정한다.
 m_ctrl_progress_burst.SetRange( 0, g_pMainFrame->m_nTimeSliceInterval ) ;
 
 // Total Burst Duration
 g_pMainFrame->m_nBurstTotalDuration += nPos ; 
 CString str ;
 str.Format( _T( "[%d/%dms]  "), g_pMainFrame->m_nBurstTotalDuration, g_pMainFrame->m_nTimeSliceInterval ) ;
 m_ctrl_progress_burst.SetWindowText( str ) ;
 
 // Bursting Progress
 m_ctrl_progress_burst.SetPos( g_pMainFrame->m_nBurstTotalDuration ) ;
}