폰트는...->그냥 다이알로그 전체에 속성을 줘도 되지만...아닌 경우,
CFont m_font; 변수 선언해주고....
초기화해주세요....
LOGFONT lf;
memset(&lf, 0, sizeof(LOGFONT));
lf.lfCharSet = 0x81;
lf.lfHeight = 20;
strcpy(lf.lfFaceName, "궁서체");
m_font.CreateFontIndirect(&lf);
m_ctrlEdit.SetFont((CFont*)&m_font, TRUE);
m_ctrlBtn.SetFont((CFont*)&m_font, TRUE);
색깔은..
OnCtlColor안에
if(pWnd->GetDlgCtrlID() >= IDC_STATIC){
pDC->SetBkColor(BACK_COLOR);
pDC->SetTextColor(RGB(255,255,255));
} 하면 색바뀌고...
새로운 폰트 하나 만들어서
pDC->SetFont(font)하면 됩니다.
////////////////////////////////////////////////////////////////////////
WM_CTLCOLOR 메시지 핸들러를 추가
BRUSH CUpdateDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(pWnd->GetDlgCtrlID() == IDC_EDIT1) //컨트롤 ID
{
hbr = (HBRUSH)::GetSysColorBrush(COLOR_WINDOW); // 배경 브러쉬
pDC->SetBkColor(RGB(255,255,255)); // 배경색
pDC->SetTextColor(RGB(0,0,0)); // 텍스트 색
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
* 참고로 버튼색을 수정하려고 할때는 property의 owner draw로 설정해야 한다.
그렇지 않으면 버튼 색이 바뀌지 않는다.
//////////////////////////////////////////////////////////////////////////
WM_CTLCOLOR 메시지 추가
HBRUSH CColorTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
/*
// 배경색
pDC->SetBkMode(TRANSPARENT); // 글자색과 배경색이 일치하게 만듬
hbr = m_brush2; // 바탕색
*/
pDC->SetBkMode(TRANSPARENT);
// 글자색
pDC->SetTextColor(RGB(150,100,50));
// 리스트 컨트롤
m_CtrlList.SetBkColor(RGB(0,0,0)); // 바탕색
m_CtrlList.SetTextBkColor(RGB(0,0,0)); // 글자 바탕색
m_CtrlList.SetTextColor(RGB(255,255,255)); // 글자색
// 에디트 박스 바탕색
if(nCtlColor==CTLCOLOR_EDIT)
{
return CreateSolidBrush(RGB(0,100,100));
}
// 리스트 박스 바탕색
if(nCtlColor==CTLCOLOR_LISTBOX)
{
return CreateSolidBrush(RGB(0,0,255));
}
// 다이얼로그 박스 바탕색
if(nCtlColor==CTLCOLOR_DLG)
{
return CreateSolidBrush(RGB(0,255,0));
}
// 정적 스테틱
if(nCtlColor==CTLCOLOR_STATIC)
{
return CreateSolidBrush(RGB(255,0,0));
}
// 스크롤바
if(nCtlColor==CTLCOLOR_SCROLLBAR)
{
return CreateSolidBrush(RGB(0,255,255));
}
// 메시지 박스
if(nCtlColor==CTLCOLOR_MSGBOX)
{
return CreateSolidBrush(RGB(0,255,255));
}
// 버튼
if(nCtlColor==CTLCOLOR_BTN)
{
return CreateSolidBrush(RGB(0,255,255));
}
return hbr;
// return (HBRUSH)CreateSolidBrush(RGB(255,255,0));
}
'C & C++ > MFC 컨트롤' 카테고리의 다른 글
[Progress] 프로그레스바 색상 바꾸기 (0) | 2011.04.18 |
---|---|
[Button] 버튼에 이미지, 아이콘 적용 (0) | 2011.04.15 |
[Dialog] 다이얼로그에 팝업메뉴 띄우기 (0) | 2011.04.14 |
[List] 리스트 컨트롤 정렬 (0) | 2011.04.14 |
[Tip] 한라인씩 자동 스트롤 (0) | 2011.04.14 |
댓글