본문 바로가기

3.구현/VC++

[MFC]화면깜박거림 제거

출처 : 데브피아

근대 내용 설명이 부족함

-------------------------------------------------

화면 깜박거림을 제거합시다.
그럼 깜박거림을 없게하려면.
가장 쉬운게 부모 윈도우, 즉 폼뷰가 변경될 때 콘트롤들이 다시 그려지지 않게 하면 됩니다.

WS_CLIPCHILDREN

이 속성을 이용하면 되죠.
대신 이속성을 폼이 키기가 변경될 때 적용하면 더욱 효과적이죠.

void CFlicker_freeView::OnSize(UINT nType, int cx, int cy)
{
             ModifyStyle(0, WS_CLIPCHILDREN); // turn on WS_CLIPCHILDREN
             CFormView::OnSize(nType, cx, cy);           // default
             UpdateWindow();
             //this->Invalidate(false);
             ModifyStyle(WS_CLIPCHILDREN, 0); // turn off WS_CLIPCHILDREN
             GetClientRect(&m_rectDraw);
}

이렇게요..
한가지 중요한게 남았는데.
구룹박스죠..
그룹박스 경우는 문제가 있어요.
자신의 차일드를 포함할수 있는데,
구룹박스의 테두리 안쪽이 폼에도 속하지 않고, WS_CLIPCHILDREN 속성에 의하여 그룹박스에도
속하지 않게되어서 화면이 요상해 집니다.
이걸 해결 할려면. Transparent속성을 활성화 시켜 주면 됩니다.

반응형