2011/10/25

[MFC] CDialogEx

Visual Studio 2010 버전에서 대화상자를 만들다. 2010 버전에서는 기본적으로 CDialogEx를 상속받아 대화상자를 만드는 것을 보았다.



MFC 9.0 부터 지원하고있는 CDialogEx라는 녀석을 찾아 보았다. 기본제공하는 클래스라 MSDN에서 쉽게 찾을 수 있었다.

CDiglogEx는 CDialog에서 배경을 제어하는 함수만 추가된 클래스였다. 추가된 함수는 아래 두 개이다.

// Control Background color
void SetBackgroundColor(
COLORREF color,
BOOL bRepaint=TRUE
);

// Control Background Image
void SetBackgroundImage(
HBITMAP hBitmap,
BackgroundLocation location=BACKGR_TILE,
BOOL bAutoDestroy=TRUE,
BOOL bRepaint=TRUE
);
BOOL SetBackgroundImage(
UINT uiBmpResId,
BackgroundLocation location=BACKGR_TILE,
BOOL bRepaint=TRUE
);




SetBackgroundColor 는 배경색을 설정하는 것으로 원하는 색상을 파라메터로 넘기면 쉽게 대화상자의 배경색을 변경할 수 있다. 기본 제공하는 클래스 에서는 체크박스와의 사소한 버그가 있다고 한다.


SetBackgroundImage 는 비트맵 객체나 비트맵 리소스로 배경 채워 준다.

채우는 방법은 기본 적으로 타일(BACKGR_TILE)형태로 하며 몇 가지 형태(BACKGR_TILE, BACKGR_TOPLEFT, BACKGR_TOPRIGHT, BACKGR_BOTTOMLEFT, BACKGR_BOTTOMRIGHT)로 설정할 수 있다.


배경색 변경의 사소한 버그도 있고 배경이미지를 컨트롤 하는 것에도 유연성이 많이 부족해 보인다. 제대로 배경을 설정하고자 한다면 다시 만들어야 할 듯 하다.


CDialogEx on MSDN 

Original Post :
http://neodreamer-dev.tistory.com/607

No comments :

Post a Comment