본문 바로가기
C & C++/MFC 컨트롤

화면 깜박임 방지

by izen8 2012. 6. 20.
반응형



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.


NoFlickerStaticCtrl.zip


반응형

'C & C++ > MFC 컨트롤' 카테고리의 다른 글

UI 만들기  (0) 2012.06.25
자신의 자식 모달 모두 닫는법  (0) 2012.06.20
자식 윈도우 일괄 배치  (0) 2012.06.20
리스트 컨트롤 사용예제 - 리스트  (2) 2012.06.20
Toolbar & Menu  (0) 2012.02.09

댓글