请问一个颜色对话框编程问题 在利用颜色对话框时,无法实现通过颜色对话框对 TEXT 控件 中 文本 颜色的设置,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TEXT 控件 中 文本 颜色的设置------函数SetTextColor() //选取颜色 void CT1Dlg::OnOK() { CColorDialog dlg; dlg.DoModal(); crCur = dlg.GetColor(); Invalidate(TRUE);}//颜色设置HBRUSH CT1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if(nCtlColor == CTLCOLOR_STATIC) { pDC->SetTextColor(crCur); } return hbr;} 1.新建一个基于对话框的应用程序,在对话框上添加一个文本控件,ID:IDC_EDIT12.在CXXXDlg中添加数据成员:pirvate: HBRUSH m_brMine; COLORREF clr ;3.在CXXXDlg的构造函数中初始化成员:clr = RGB(0,0,0); //黑色4.在OnOK中添加代码:void CXXXDlg::OnOK() { CColorDialog dlg; dlg.DoModal(); clr = dlg.GetColor(); Invalidate(TRUE);}5.利用ClassWizard向导映射XXXDlg的WM_CTLCOLOR消息,并添加代码:HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { if ((pWnd->GetDlgCtrlID() == IDC_EDIT1) && (nCtlColor == CTLCOLOR_EDIT)) { pDC->SetTextColor(clr); //设置红色的文本 COLORREF bkclr = RGB(255,255,255); pDC->SetBkColor(bkclr); //设置白色的背景 m_brMine = ::CreateSolidBrush(bkclr); return m_brMine; //作为约定,返回背景色对应的刷子句柄 } else { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); return hbr; }}6.编译执行,在文本框中输入内容,默认为黑色,点OK按钮出现颜色选择框选择颜色确定,文本框中颜色改变 怎么用netuseradd给远程计算机添加用户? 遇到问题了……线程中调用MSComm控件的问题 如何更新 mshtml.h 文件 BCG界面按钮激活的问题. 来不起了,一个类型转换整死我了,求救! 把基础类没解决的问题发到这里再求教:动态创建的Edit控件的数据交换问题 函数指针作为参数传递,怎么写?? 郁闷问题,帮助解决白分相送 窗口在多显示器上显示、定位问题,急,急!! 在线求高手帮忙! 谁有现成的数据库绑定的树类,可以发我一个吗?E_mial:[email protected] 谁有vc视频教材啊:孙鑫老师出的哪个,我找了很久都没找到,想要又没钱买的进来up下
------
函数SetTextColor()
void CT1Dlg::OnOK()
{
CColorDialog dlg;
dlg.DoModal();
crCur = dlg.GetColor();
Invalidate(TRUE);
}
//颜色设置
HBRUSH CT1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetTextColor(crCur);
}
return hbr;
}
pirvate:
HBRUSH m_brMine;
COLORREF clr ;3.在CXXXDlg的构造函数中初始化成员:
clr = RGB(0,0,0); //黑色4.在OnOK中添加代码:
void CXXXDlg::OnOK()
{
CColorDialog dlg;
dlg.DoModal();
clr = dlg.GetColor();
Invalidate(TRUE);
}5.利用ClassWizard向导映射XXXDlg的WM_CTLCOLOR消息,并添加代码:
HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if ((pWnd->GetDlgCtrlID() == IDC_EDIT1) && (nCtlColor == CTLCOLOR_EDIT))
{
pDC->SetTextColor(clr); //设置红色的文本
COLORREF bkclr = RGB(255,255,255);
pDC->SetBkColor(bkclr); //设置白色的背景
m_brMine = ::CreateSolidBrush(bkclr);
return m_brMine; //作为约定,返回背景色对应的刷子句柄
}
else
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
return hbr;
}
}
6.编译执行,在文本框中输入内容,默认为黑色,点OK按钮出现颜色选择框选择颜色确定,文本框中颜色改变