출처 : 데브피아
근대 내용 설명이 부족함
-------------------------------------------------
화면 깜박거림을 제거합시다.
그럼 깜박거림을 없게하려면.
가장 쉬운게 부모 윈도우, 즉 폼뷰가 변경될 때 콘트롤들이 다시 그려지지 않게 하면 됩니다.
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속성을 활성화 시켜 주면 됩니다.
반응형
'3.구현 > VC++' 카테고리의 다른 글
[Visual .NET] 클래스 이벤트, 메시지 헨들러 정의 방법 (0) | 2012.08.14 |
---|---|
[VC++]Writing Exception-Safe Code with Visual C++ (0) | 2012.08.14 |
[MFC]폼뷰 외곽 경계선 없애기 (0) | 2012.08.14 |
[MFC]멀티쓰레드 Multi Thread (0) | 2012.08.14 |
[MFC]디렉토리(폴더)내에서 파일이름들만 얻기 (0) | 2012.08.14 |