SPRING :: NOTE

[MFC] Static Text Control 배경 투명 등 본문

Development Language/C · C++ · MFC

[MFC] Static Text Control 배경 투명 등

RAYZIE 2018. 11. 26. 15:23
반응형

1. 클래스 마법사에서 아래 함수를 추가합니다.


WM_CTLCOLOR


2. 생성된 OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 함수안에 아래 코드를 작성합니다.

HBRUSH DlgConf::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);

	// TODO:  여기서 DC의 특성을 변경합니다.
	CRect rect;
	UINT nID = pWnd->GetDlgCtrlID();

	if (nCtlColor == CTLCOLOR_STATIC)

	{
			pDC->SetBkMode(TRANSPARENT);      // 배경 투명으로 변경
			return (HBRUSH)::GetStockObject(NULL_BRUSH);
	}
	// TODO:  기본값이 적당하지 않으면 다른 브러시를 반환합니다.
	return hbr;
}


위와 같이 변경하면, 해당되는 다이얼로그의 STATIC TEXT 배경이 전부 투명으로 변경.

아래와 같이 수정하면 필요한 부분만 변경 가능하다.

HBRUSH DlgConf::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);

	// TODO:  여기서 DC의 특성을 변경합니다.
	CRect rect;
	UINT nID = pWnd->GetDlgCtrlID();

	if (nCtlColor == CTLCOLOR_STATIC)

	{

		if (nID == /*Static Text Control ID*/)
		{
			pDC->SetBkMode(TRANSPARENT);      //  각 Static Text 배경 투명 변경

			//pDC->SetTextColor(RGB(0, 0, 0));  // 각 Static Text 글자 색 변경
			//pDC->SetBkColor(RGB(0, 128, 0));  // 각 Static Text 배경 색 변경

			return (HBRUSH)::GetStockObject(NULL_BRUSH);

		}

	}
	// TODO:  기본값이 적당하지 않으면 다른 브러시를 반환합니다.
	return hbr;
}
반응형
Comments