一、创建工程
点“文件”,点“新建”
点“MFC AppWizard.exe”,选择存储路径,输入工程名“颜色选择”
二、设计对话框
添加组框、单选按钮、编辑框
添加类内变量colour
添加m_edit、m_CsEdit变量
添加WM_CTLCOLOR消息的响应函数
添加单选按钮的响应函数;
于初始化函数内 添加编辑框之代码
三、编辑代码
双击OnRadio1函数,进入代码编辑区,编辑代码(输入红色代码)为:
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(nCtlColor == CTLCOLOR_EDIT)
pDC->SetTextColor(colour);
// TODO: Return a different brush if the default is not desired
return hbr;
}
void CMyDlg::OnRadio1()
{
// TODO: Add your control notification handler code here
colour = RGB(255,0,0);
m_edit.SetFocus();
}
void CMyDlg::OnRadio2()
{
// TODO: Add your control notification handler code here
colour = RGB(0,0,255);
m_edit.SetFocus();
}
void CMyDlg::OnRadio3()
{
// TODO: Add your control notification handler code here
colour = RGB(0,255,0);
m_edit.SetFocus();
}
void CMyDlg::OnRadio4()
{
// TODO: Add your control notification handler code here
colour = RGB(255,255,0);
m_edit.SetFocus();
}
四、编译
五、函数说明
1、CDC::SetTextColor函数声明
viod COLORREF SetTextColor(COLORREF crClor)
crColor:以RGB形式设置颜色参数
功能: 设置文本颜色,返回值为文本颜色改变前的RGB值。
2、OnCtlColor函数声明
afx_msg HBRUSH OnCtlColor(CDC*pDC,CEnd*pWnd,UINT nCtlColor)
pDC: 指向绘图设备的指针
pWnd: 指向具体控件的指针。
nCtlColor:控件类型。
功能: 是消息WM_CTLCOLOR的响应函数,当子控件将被绘画时主窗口调用该函数。