美化MFC控件,OnCtlColor() in MFC

1.//声明句柄刷子
    afx_msg    HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);


2.写函数体,各种控件的美化

HBRUSH CGetMarketDataDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);       //NOTE!!:here is CDialog
 
// TODO: Change any attributes of the DC here

// TODO: Change any attributes of the DC here
if(nCtlColor==CTLCOLOR_LISTBOX)//列表框
{
//pDC->SetBkMode(TRANSPARENT);//设置透明
pDC->SetTextColor(RGB(0,0,0));//改变文本
pDC->SetBkColor(RGB(0,233,220));//改变背景
HBRUSH b=CreateSolidBrush(RGB(0,233,220));
return b;
}
else if(nCtlColor==CTLCOLOR_SCROLLBAR)
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(0,180,220));
HBRUSH b=CreateSolidBrush(RGB(0,180,220));
return b;
}


else if(nCtlColor==CTLCOLOR_EDIT)//改变编辑框
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(0,180,220));
HBRUSH b=CreateSolidBrush(RGB(0,180,220));
return b;
}
else if(nCtlColor==CTLCOLOR_STATIC)//静态文本
{
//pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(0,180,220));
HBRUSH b=CreateSolidBrush(RGB(0,180,220));
return b;
}
else if(nCtlColor==CTLCOLOR_DLG)//对话框
{
//pDC->set
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(0,0,0));
HBRUSH b=CreateSolidBrush(RGB(0,0,0));
return b;
}
else if(nCtlColor==CTLCOLOR_BTN){
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(0,180,220));
HBRUSH b=CreateSolidBrush(RGB(0,180,220));
return b;
}
else if(nCtlColor==CTLCOLOR_MSGBOX){
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(0,180,220));
HBRUSH b=CreateSolidBrush(RGB(0,180,220));
return b;
}
// TODO: Return a different brush if the default is not desired
// TODO: Return a different brush if the default is not desired
return hbr;
}


3.添加OnCtlColor()的消息映射

BEGIN_MESSAGE_MAP(CGetMarketDataDlg, CDialogEx)
    ON_WM_SYSCOMMAND()
    ON_WM_PAINT()

    ON_WM_CTLCOLOR() //OnCtlColor()的消息映射
    ON_WM_QUERYDRAGICON()  
    ON_BN_CLICKED(ID_BN_START, &CGetMarketDataDlg::OnBnClickedBnStart)
    ON_BN_CLICKED(ID_BN_STOP, &CGetMarketDataDlg::OnBnClickedBnStop)
    ON_BN_CLICKED(IDOK, &CGetMarketDataDlg::OnBnClickedOk)
END_MESSAGE_MAP()  


附上MSDN连接:http://msdn.microsoft.com/zh-cn/library/0wwk06hc.aspx

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值