MFC Dialog프레임 바꾸기

윈도우의 프레임은 윈도우의 경계를 나타내면서 동시에 손쉽게 윈도우의 크기를 변경할 때도 쓰인다.
이 프레임을 제거하면, 윈도우 경계지점에 마우스 포인터를 위치하고 드래그하며 윈도우 크기를 변경하는것이 불가능해 진다. 그래서 이 부분을 사용자가 직접 구현해 주어야 하는데, 이런 스트레스를 피하기 위해 윈도우 프레임을 그냥 하얗게 칠해버리거나 원하는 모양으로 바꾸어 주는 방법도 있다.

//WM_NCPAINT 메시지 핸들러
void CMainFrame::OnNcPaint()

{

        // OnNcPaint()의 Nc는 Non-Client 영역이라는 뜻 이다

        CWindowDC dc(this);

        CRect rt;

        CPen pen;

       

        GetWindowRect(&rt);

        rt.NormalizeRect();

        rt.OffsetRect(-rt.left, -rt.top);

 

        // 프레임을 대신해서 그릴 선의 모양과 두께와 색

        pen.CreatePen(PS_SOLID, 1, RGB(198,198,198));

        // 프레임은 흰색으로 색칠한다

        dc.FillSolidRect(&rt, RGB(255,255,255)

        // 흰색으로 칠해진 프레임에 그림을 그려준다

        dc.SelectObject(pen);

        dc.Rectangle(&rt);

        Invalidate();

        // Do not call CDialog::OnNcPaint() for painting messages

}


출처 : http://mhspecial.tistory.com/trackback/54