函数OnCtlColor()如何改变BTN按钮控件字体颜色和背景颜色?
HBRUSHCLogin::OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor){HBRUSHhbr=CDialogEx::OnCtlC...
HBRUSH CLogin::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何特性
if(nCtlColor==CTLCOLOR_STATIC)
{
pDC->SetTextColor(RGB(255,255,0));
pDC->SetBkColor(RGB(0,0,255));
}
if(nCtlColor==CTLCOLOR_BTN)
{
pDC->SetBkMode(TRANSPARENT);//背景
pDC->SetTextColor(RGB(255,255,0));//字体颜色
} //这里运行之后为什么BTN按钮字体颜色和背景颜色不会改变呢???????????
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
} 展开
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何特性
if(nCtlColor==CTLCOLOR_STATIC)
{
pDC->SetTextColor(RGB(255,255,0));
pDC->SetBkColor(RGB(0,0,255));
}
if(nCtlColor==CTLCOLOR_BTN)
{
pDC->SetBkMode(TRANSPARENT);//背景
pDC->SetTextColor(RGB(255,255,0));//字体颜色
} //这里运行之后为什么BTN按钮字体颜色和背景颜色不会改变呢???????????
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
} 展开
2个回答
展开全部
CButton *pTxt=(CButton*)GetDlgItem(CTLCOLOR_BTN
);
CDC* pDC=pTxt->GetDC();
CRect rc;
pTxt->GetClientRect(&rc);
CBrush brush;
brush.CreateSolidBrush(RGB(0,250,250));
pDC->FillRect(&rc,&brush);
pDC->SetBkColor(RGB(120,120,250));
pDC->SetTextColor(RGB(0,120,250));
);
CDC* pDC=pTxt->GetDC();
CRect rc;
pTxt->GetClientRect(&rc);
CBrush brush;
brush.CreateSolidBrush(RGB(0,250,250));
pDC->FillRect(&rc,&brush);
pDC->SetBkColor(RGB(120,120,250));
pDC->SetTextColor(RGB(0,120,250));
追问
为什么CTLCOLOR_STATIC不需要上述步骤,只要一句就达到目的?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用linux驱动开发的回答:
CButton *pTxt=(CButton*)GetDlgItem(CTLCOLOR_BTN
);
CDC* pDC=pTxt->GetDC();
CRect rc;
pTxt->GetClientRect(&rc);
CBrush brush;
brush.CreateSolidBrush(RGB(0,250,250));
pDC->FillRect(&rc,&brush);
pDC->SetBkColor(RGB(120,120,250));
pDC->SetTextColor(RGB(0,120,250));
CButton *pTxt=(CButton*)GetDlgItem(CTLCOLOR_BTN
);
CDC* pDC=pTxt->GetDC();
CRect rc;
pTxt->GetClientRect(&rc);
CBrush brush;
brush.CreateSolidBrush(RGB(0,250,250));
pDC->FillRect(&rc,&brush);
pDC->SetBkColor(RGB(120,120,250));
pDC->SetTextColor(RGB(0,120,250));
展开全部
下面给出的答案,这段代码我运行会崩溃。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询