大小,字形设置:
1. 只需要在InitDialog添加代码即可;
2. CFont定义的变量要定义为类成员变量,不然不能显示设置效果;
3. 代码:
//改变字体大小
m_nfont.CreateFont(30,10,0,0,700,FALSE,FALSE,0,DEFAULT_CHARSET,DEFAULT_CHARSET,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH
| FF_SCRIPT,"隶书");
GetDlgItem(IDC_BTN_COLOR)->SetFont(&m_nfont);
字体颜色设置:(背景和字体颜色)
WM_DRAWITEM消息处理函数:
void CTest_Dlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT
lpDrawItemStruct)
{
// TODO: Add your message handler code here and/or call
default
if
(nIDCtl==IDC_BTN_COLOR) //checking for the button
{
//改变按钮字体和背景颜色
CDC dc;
RECT rect;
dc.Attach(lpDrawItemStruct->hDC); // Get the Button DC to
CDC rect =
lpDrawItemStruct->rcItem; //Store the Button rect to our local
rect. dc.Draw3dRect(&rect,RGB(192,192,192),RGB(0,0,0)); //画按钮
dc.FillSolidRect(&rect,RGB(100,125,100));
//设置按钮颜色
UINT
state=lpDrawItemStruct->itemState;
//画边框
if((state &
ODS_SELECTED))
{
dc.DrawEdge(&rect,EDGE_SUNKEN,BF_RECT);
}
else
{
dc.DrawEdge(&rect,EDGE_RAISED,BF_RECT);
}
dc.SetBkColor(RGB(100,125,100)); //Setting the Text Background color
dc.SetTextColor(RGB(255,0,0)); //Setting the Text Color
TCHAR
buffer[MAX_PATH]; //To store the Caption of the button.
ZeroMemory(buffer,MAX_PATH
); //Intializing the buffer to zero
::GetWindowText(lpDrawItemStruct->hwndItem,buffer,MAX_PATH);
//Get the Caption of Button Window
dc.DrawText(buffer,&rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE);//Redraw
the Caption of Button Window
dc.Detach(); // Detach the
Button DC
}
CDialog::OnDrawItem(nIDCtl,
lpDrawItemStruct);
}