
MFC中如何利用OnCtlColor函数改变编辑框背景颜色?
这是我OnCtlColor函数的代码HBRUSHCchuangkouOne::OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor)//添...
这是我OnCtlColor函数的代码
HBRUSH CchuangkouOne::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) //添加color消息
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_EDIT)//注意此处的(pWnd->),否则没效果
{
pDC->SetTextColor(RGB(255,0,0));//字体颜色
pDC->SetBkColor(RGB(255,255,0));//设置文本背景色
pDC->SetBkMode(TRANSPARENT);//设置背景透明
hbr = (HBRUSH)m_brush;
}
return hbr;
}
假设一个编辑框的名称是IDC_EDIT70,其连接的变量是m_G1_1,在非模态对话框“chuangkouOne”中,现在若要设置其背景为浅蓝色(RGB为85,71,226)则应该怎么设置呢?怎么调用该函数啊? 展开
HBRUSH CchuangkouOne::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) //添加color消息
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_EDIT)//注意此处的(pWnd->),否则没效果
{
pDC->SetTextColor(RGB(255,0,0));//字体颜色
pDC->SetBkColor(RGB(255,255,0));//设置文本背景色
pDC->SetBkMode(TRANSPARENT);//设置背景透明
hbr = (HBRUSH)m_brush;
}
return hbr;
}
假设一个编辑框的名称是IDC_EDIT70,其连接的变量是m_G1_1,在非模态对话框“chuangkouOne”中,现在若要设置其背景为浅蓝色(RGB为85,71,226)则应该怎么设置呢?怎么调用该函数啊? 展开
1个回答
展开全部
如果OnCtlColor可以改变编辑框背景色,那么就是在设置好背景色后使得OnCtlColor函数被调用,因此设置好背景色后使编辑框窗口重绘即可。
追问
本人新手一个,有代码吗?
追答
比如你的编辑框关联的控件变量是m_edit1,则代码:m_edit1.Inalidate()就是引起编辑框重绘。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询