用MFC怎样改变只读编辑框的背景颜色,初始化时为绿色当收到某个消息时变为红色,希望高手帮帮忙!
展开全部
1、首先定义个颜色全局变量 m_color;
2、初始化为绿色m_color=RGB(37,94,34));
3、在WM_CTLCOLOR的响应函数HBRUSH CxxxDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)下添加处理;如下:
if( nCtlColor == CTLCOLOR_STATIC)
{
switch (pWnd->GetDlgCtrlID())
{
case IDC_EDIT_xx://只读编辑框ID
pDC->SetTextColor(RGB(0,0,0));//文字颜色
pDC->SetBkColor();//编辑框背景色
break;
default:
//。。。。。
}
4、当收到消息时,设置为红色m_color=RGB(255,0,0));
2、初始化为绿色m_color=RGB(37,94,34));
3、在WM_CTLCOLOR的响应函数HBRUSH CxxxDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)下添加处理;如下:
if( nCtlColor == CTLCOLOR_STATIC)
{
switch (pWnd->GetDlgCtrlID())
{
case IDC_EDIT_xx://只读编辑框ID
pDC->SetTextColor(RGB(0,0,0));//文字颜色
pDC->SetBkColor();//编辑框背景色
break;
default:
//。。。。。
}
4、当收到消息时,设置为红色m_color=RGB(255,0,0));
追问
谢谢我还想问问·····我想的是由单片机发来的一个信息在pc机接收后怎样利用这个信息让编辑框的颜色改变····WM_CTLCOLOR消息好像是在系统绘制对话框时发出的··那么是不是自己就不能想什么时候产生这个消息就什么时候产生
追答
你在收到消息后,让窗口重绘就行了,就是刷新窗口
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询