[Ctrl] 컨트롤 색상변경
// Edit 컨트롤과 Control 형 멤버 변수 m_ctrlEdit 와 연결
// ControlColorDlg.h
class CControlColorDlg : public CDialog
{
// Construction
public:
CControlColorDlg(CWnd* pParent = NULL); // standard constructor
CBrush m_brush; // 브러시 인스턴스 선언
//...
}
// ControlColorDlg.cpp
// 컨트롤의 배경을 칠할 브러시 생성
CControlColorDlg::CControlColorDlg(CWnd* pParent /*=NULL*/)
: CDialog(CControlColorDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CControlColorDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_brush.CreateSolidBrush(RGB(255, 0, 0)); // 추가
}
// WM_CTLCOLOR 메시지 처리 구현
HBRUSH CControlColorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(m_ctrlEdit.m_hWnd == pWnd->m_hWnd)
{
pDC->SetTextColor(RGB(0, 0, 255));
pDC->SetBkColor(RGB(255, 255, 0));
return hbr;
}
if(nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetTextColor(RGB(0, 255, 0));
pDC->SetBkColor(TRANSPARENT);
return m_brush;
}
// TODO: Return a different brush if the default is not desired
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}