반응형
체크박스를 투명하게 하기 위해서는 OnCtrlColor 을 재정의해서 사용하면 된다.
HBRUSH CTest::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 여기서 DC의 특성을 변경합니다.
int nRet = pWnd->GetDlgCtrlID();
if (nRet == IDC_CHECK_TIME_LIMIT)
{
pDC->SetBkMode(TRANSPARENT);
hbr = (HBRUSH)GetStockObject(NULL_BRUSH);
}
// TODO: 기본값이 적당하지 않으면 다른 브러시를 반환합니다.
return hbr;
}
하지만 이렇게 하게 되면, Windows XP 에서 테마를 사용한 PC 에서는 위와 같이 체크박스가 검게 변하는데
이를 해결하기 위해선SetWindowTheme( m_ctrlCheckTime, L"", L"");을 Dialog 의 OnInitDialog 부분에 추가시켜준다.
SetWindowTheme 를 사용하기 위해서는 프로젝트 속성에서 Linker Input 부분에 UxTheme.lib 라이브러리를 추가
반응형
'C & C++ > MFC 컨트롤' 카테고리의 다른 글
리스트 컨트롤 색상 다루기 (0) | 2011.10.26 |
---|---|
Static Control 에서의 마우스 이벤트 처리 (0) | 2011.10.25 |
Static 에 텍스트를 쓸때 겹쳐서 나올 경우 (0) | 2011.10.25 |
마우스 드레그 하여 다이얼 로그 이동 (0) | 2011.10.25 |
다이얼로그에 배경입히기 (0) | 2011.10.19 |
댓글