yiketangtang 于 2015.06.01 23:27 提问
- 如何使用CColorDialog改变编辑框的输入文本的颜色
-
这是我的颜色按键处理函数
void CMFCChatDlg::OnBnClickedColor()
{
// TODO: 在此添加控件通知处理程序代码
CColorDialog colorDlg;
if (colorDlg.DoModal() == IDOK)
{
color = colorDlg.GetColor();
CFile colorfile;
colorfile.Open("colortemp.dat", CFile::modeCreate | CFile::modeWrite);
colorfile.Write(&m_color, sizeof(m_color));
colorfile.Close();
}
}
HBRUSH CMFCChatDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);// TODO: 在此更改 DC 的任何特性 // if(nCtlColor==CTLCOLOR_EDIT) 可以实现发送框颜色变化~ // { //pDC->SetBkMode(TRANSPARENT); if(nCtlColor==CTLCOLOR_EDIT && pWnd->GetDlgCtrlID()==IDC_INPUT) { pDC->SetTextColor(m_color); //文字颜色 // pDC->SetBkColor(RGB(233,233,220)); //背景颜色 // HBRUSH b=CreateSolidBrush(RGB(233,233,220));//背景颜色 // } // TODO: 如果默认的不是所需画笔,则返回另一个画笔 hbr = (HBRUSH)m_brush; } return hbr;
}
运行结果并不能改变字体,请问怎么解决
-
-
devmiao
2015.06.01 23:29
-
- yiketangtang 我用了richedit弄出来了,但发送一次消息就需要再次设置颜色,怎么只让修改时才会改变颜色
- 接近 3 年之前 回复
-
-
a1193561652
2015.06.01 23:40
在SetTextColor()前把m_color输出看看,是不是没取到颜色值。另外设置Edit的文字颜色通常不是响应WN_CTLCOLOR消息的吗?
-
- a1193561652 回复yiketangtang: 什么格式?字体还是自动换行什么的?
- 接近 3 年之前 回复
-
- yiketangtang 但是每次发送后输入新的内容时格式都会变成默认的,怎么不让它回复默认?
- 接近 3 年之前 回复
-
- yiketangtang 使用richedit做出来了
- 接近 3 年之前 回复
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!