C & C++/MFC 컨트롤
화면 깜박임 방지
izen8
2012. 6. 20. 13:28
1.
윈도우 화면 깜빡임을 방지하기 위해서는 아래와 같은 코드를 추가하여야 한다.
1. OnPaint() 에서 더블버퍼링을 사용한다.
2. 배경색이 OnPaint() 에서 그리는 색과 다른 경우에는 WM_ERASEBKGND 처리를
수정하여야 한다. 이는 아래와 같이 수정하라.
1) 대화상자에 아래와 같은 내부 변수를 추가하라.
bool m_bIsEraseBkgnd;
2) 대화상자 생성자에 위의 값을 false 로 초기화하라.
3) 대화상자의 WM_ERASEBKGND 처리를 아래와 같이 하라.
BOOL CFileTransferView::OnEraseBkgnd(CDC* pDC)
{
if( m_bIsEraseBkgnd )
{
return __super::OnEraseBkgnd(pDC);
}
else
{
return TRUE;
}
}
4) OnPaint() 에서 더블버퍼링용 CDC 를 생성한 후, 아래의 코드를 추가하라.
m_bIsEraseBkgnd = true;
SendMessage( WM_ERASEBKGND, (WPARAM)dc.m_hDC, 0 );
m_bIsEraseBkgnd = false;
2.