Programming/MFC
TextProgress 사용하기
_Erato
2006. 9. 27. 19:28
위의 검은색으로 칠한 부분의 Progress의 내용에 텍스트를 삽입하고 색을 바꾸어 칠한다.
// 헤더에 멤버를 등록한다.
// 일반 Progress를 멤버로 만들고 클래스명만 바꾸면 된다.
// Bursting Progress
CTextProgressCtrl m_ctrl_progress_burst;
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 ) ;
// 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 ;
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 ) ;
}
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 ) ;
}