我用的类继承CEdit类,但是CEdit类没办法改行间距,我就改成了CRichEditCtrl类,这样行间距就改好了,但是原来的WM_CTLCOLOR消息触发不了了,该如何处理?
解决方案 »
- opencv运动跟踪
- 刚学VC,写了个创建窗口的程序,但是不显示窗口,大家帮看看
- 请问 UICtrlWndProc 要访问类成员变量 应该如何改?
- 我想问一下,我怎样才能获得一个局域网内的计算机的公网IP
- 在怎么编程实现打开一个project并调试进入状态。(个人感觉有点bt的问题)
- 请问如何搞定有关数字签名的东西.
- 急!!!请教高手,启动应用程序的问题
- 怎样用VC修改一个vc写的.exe文件?
- 一个archive类的存储问题,知道的回答下
- 这个问题我想了快一个礼拜了,可是……我快疯了~~~~~~~~~~拿出我全部的131分
- cedit 的焦点如何获得?其父窗口为clistCtrl
- jpeg 图像的二值化问题
ON_WM_CTLCOLOR_REFLECT()
HBRUSH CXXXXEdit::CtlColor(CDC* pDC, UINT nCtlColor)
ON_WM_CTLCOLOR()
。
HBRUSH CSeatViewDlg::OnCtlColor(CDC* pDC,CWnd* pWnd,UINT nCtlColor)
在View类的另外一个地方
((CSeatTransferEdit *)m_aSeatEditArray.GetAt(i))->SetWindowText("");
((CSeatTransferEdit *)m_aSeatEditArray.GetAt(i))->SetWindowText(strTitle);CSeatTransferEdit 继承CRichEditCtrl,就不调用OnCtlColor。
要是改成继承CEdit,就可以调用到~~~
实现了别的功能~~~最好能触发这个消息~~~
先设置 RichEdit 的 EN_CHANGE 事件掩码,可以重载 控件的 PreSubclassWindow 虚函数,如下:void CMyRichEditCtrl::PreSubclassWindow()
{
SetEventMask(ENM_CHANGE); CRichEditCtrl::PreSubclassWindow();
}
★第二步:
在 EN_CHANGE 事件中伪造 WM_CTLCOLOREDIT 消息,然后在 OnEnChange 中加入如下代码:void CMyRichEditCtrl::OnEnChange()
{
CDC * pDC = GetDC();
HBRUSH hBrush = (HBRUSH)GetParent()->SendMessage(WM_CTLCOLOREDIT,(WPARAM)pDC->m_hDC,(LPARAM)this); // ★ 在这里尝试通过 hBrush 和 pDC 获得你在父窗口的 OnCtlColor() 函数中设置的颜色,祝你好运:) ReleaseDC(pDC);
}