现在有两个文本编辑框
ID号为IDC_NUM1 , IDC_NUM2
关联的变量是m_num1 , m_num2 。变量类型为 Cstring
我想让
当m_num1为“pass”时 这个编辑框的颜色为绿色,为“fail”时编辑框的颜色为红色
m_num2也是一样的
谁能帮帮我啊
写些代码什么的
代码啊!!
ID号为IDC_NUM1 , IDC_NUM2
关联的变量是m_num1 , m_num2 。变量类型为 Cstring
我想让
当m_num1为“pass”时 这个编辑框的颜色为绿色,为“fail”时编辑框的颜色为红色
m_num2也是一样的
谁能帮帮我啊
写些代码什么的
代码啊!!
HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor ); pDC 包含了子窗口的显示设备环境的指针。可能是临时的。
pWnd消息发送者指针
nCtlColor 包含了下列值,指定了控件的类型:
CTLCOLOR_BTN 按钮控件 ·
CTLCOLOR_DLG 对话框 ·
CTLCOLOR_EDIT 编辑控件 ·
CTLCOLOR_LISTBOX 列表框控件
CTLCOLOR_MSGBOX 消息框
CTLCOLOR_STATIC 静态控件等在对话框的OnCtlColor 中添加
switch (pWnd->GetDlgCtrlID())
{
//针对ID为IDC_NUM1、IDC_NUM2和IDC_CTL3的控件进行不同设置
case IDC_NUM1:
{
if(m_num1=="pass)
{
pDC->SetBkMode(TRANSPARENT);//使文本背景与控件背景一样
pDC->SetTextColor(RGB(0,255, 0));//文本颜色为绿色
// pDC->SetBkColor(0,0,255);//背景色
}
else if(m_num1=="fail")
{
pDC->SetBkMode(TRANSPARENT);//使文本背景与控件背景一样
pDC->SetTextColor(RGB(255,0, 0));
//pDC->SetBkColor(0,0,255);//背景色
}
}
break;
case IDC_NUM2:
...
break;
case IDC_CTL3:
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(255,255, 0));
}
break;
default:
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if((pWnd-> GetDlgCtrlID() == IDC_EDIT1) && (nCtlColor == CTLCOLOR_EDIT)&&(m_num1=="pass"))
{
pDC-> SetTextColor(RGB(255,0,0)); //设置红色的文本
pDC-> SetBkColor(RGB(0,0,0)); //设置黑色的文本背景
pDC-> SetBkMode(OPAQUE); //设置是否为不透明
HBRUSH m_brMine = CreateSolidBrush(RGB(255,255,0)); //设置黄色的控件背景
return m_brMine; //作为约定,返回背景色对应的刷子句柄
}