2014-05-15 3 views
0

msdn에서 샘플 코드를 실행 중입니다.마키 진행률 표시 줄을 재설정하는 방법

// 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); 
} 

이 기능은 작동하지만 선택 윤곽이 꺼져있는 경우 진행률 표시 줄이 인스턴스에 고정 된 상태로 유지됩니다. 따라서 움직이는 빛이 그 당시의 중간에 있었다면 그 위치에서 멈출 것입니다. 내가 마키를 껐을 때 마키를 재설정하고 싶지만 그 기능을 찾을 수는 없습니다. SetPos (0) 시도했지만 그 중 하나를 도움이되지 않습니다. 조치가 취해지면 선택 윤곽 진행 막대를 재설정하는 방법이 있습니까?

+0

적절한 UI 디자인은 더 이상 유용하지 않을 때 선택 윤곽 스타일 진행률 표시 줄을 숨기는 것입니다. 정말로 원한다면 물론 다시 만들 수 있습니다. –

+0

@HansPassant 그 순간에 내가하고있는 일 중 하나입니다. 그러나 팝업 대화 상자가 아니라 기존 대화 상자에서 진행 상황을 표시하고 숨기면 빈 공간이 있습니다. – zar

답변

2

CWnd::ModifyStyle()과 같이 ProgressBar의 PBS_MARQUEE 창 스타일을 제거한 다음 위치를 원하는 값으로 변경할 수 있습니다. 마루 모드 일 때만 PBS_MARQUEE 스타일을 활성화하고 그렇지 않은 경우 비활성화하십시오.

void CCProgressCtrl_s1Dlg::OnSetmarqueeOn() 
{ 
    m_progressCtrl.ModifyStyle(0, PBS_MARQUEE); 
    m_progressCtrl.SetMarquee(TRUE, nMarqueeInterval); 
} 

void CCProgressCtrl_s1Dlg::OnSetmarqueeOff() 
{ 
    m_progressCtrl.SetMarquee(FALSE, nMarqueeInterval); 
    m_progressCtrl.ModifyStyle(PBS_MARQUEE, 0); 
    m_progressCtrl.SetPos(0); 
} 
관련 문제