CxImage에서 투명 픽셀을 표시하려면?
투명 픽셀을 이용할 수 있는 PNG 파일과 같은 경우, CxImage에서는 SetTransIndex(), SetTransColor(), AlphaStrip()을 이용하여 투명 픽셀을 표시하게 된다. 먼저, 필요한 파일을 부르고, 이 파일에 대해서 SetTransIndex(0)을 호출하여 투명 처리를 가능하게 해주어야 한다. 그 다음, SetTransColor()을 호출하는데, 이 메서드는 인자로 RGBQUAD를 요구한다. 여기에 넘겨지는 값은 투명도를 표시하는 픽셀의 RGBQUAD 값이다. 그리고, 마지막으로 AlphaStrip()을 호출하면 해당 이미지의 투명 픽셀을 출력할 수 있다. 예를 들어, RGBA = 0xFF, 0xFF, 0xFF, 0xFF의 값이 투명을 의미하는 픽셀값일 경우, 다음과 같이 ..
더보기
CWnd::PostNcDestroy()
일반적으로, 가장 바깥의 프레임 윈도우를 만드는데는 CFrameWnd가 사용되는데, 이것은 따로 청소 작업을 해주지 않아도 된다. 즉, CWinApp의 m_pMainWnd에 CFrameWnd에서 파생된 윈도우를 붙였다면, 이것은 따로 삭제해주지 않아도 CFrameWnd가 알아서 삭제된다. 그렇지만, 프레임 윈도우를 CFrameWnd가 아니라 CWnd에서 파생받아서 사용했고, 이것을 힙에 생성했다면, 청소 작업을 반드시 해주어야 한다. 2가지 방법이 있을 수 있는데, 가장 일반적인 방법인, PostNcDestroy() 메서드를 오버라이딩해서 자신을 삭제해주어야 한다. (delete this와 같은 방법으로) 두번째 방법은, 만약 PostNcDestroy() 메서드를 오버라이딩하지 않는다면 스마트 포인터와 ..
더보기