case WM_NCPAINT:
 case WM_NCACTIVATE:
  {
       HDC hDC = GetWindowDC( hWnd );
       if( hDC )
       {
            // 디폴트 리젼 제거 ( XP는 위쪽이 둥그니까.. )
            SetWindowRgn( hWnd, NULL, false );
            // Draw는 여기서..
            ReleaseDC( hWnd, hDC );
       }

        if( uMsg == WM_NCPAINT )
             return 0;
        if( uMsg == WM_NCACTIVATE )
             return TRUE;
  }
  break;

요는 WM_NCACTIVATE...
WM_NCPAINT는 쉽게 알게되는 반면에 WM_NCACTIVATE도 처리해줘야 한다는건
잘 안나온다. 비활성/활성으로 상태변경시 이 메세지가 오는데 이것도 처리해주지
않으면 다시 기본타이틀 모양으로 바뀌어 버린다. 그리고 WM_NCACTIVATE시에
리턴값이 TRUE여야 출력이외의 창간 우선순위처리들이 수행된다.

더 자세한것은 당연히 MSDN을..

'조각지식' 카테고리의 다른 글

명시적 타입 변환 ( 캐스팅 )  (0) 2009.03.31
구조체의 char data[1]의 역할은..?  (0) 2009.03.19
Non Client 영역 칠하기 ( ex : 타이틀 바 )  (0) 2008.12.08
GoF Design Pattern 요약  (0) 2008.04.12
P/Invoke  (0) 2007.08.07
C#과 C++ 사이의 interop  (0) 2007.08.07
Posted by 자갈공명 zagalnet

댓글을 달아 주세요