有人用过MfcGridCtrl吗,若想在一个cell里面,不同的字符用不同的颜色,有什么方法?解决思路

有人用过MfcGridCtrl吗,若想在一个cell里面,不同的字符用不同的颜色,有什么方法?
MfcGridCtrl
http://www.codeproject.com/miscctrl/gridctrl.asp
据说是最好的grid

------解决方案--------------------
要实现你的要求必须修改gridctrl里面的设置文字函数
必须另外加一个参数 用来将你要的字体颜色传递过去 估计修改起来会比较麻烦
你必须对gridctrl类很熟悉
------解决方案--------------------
e网上有人写过这样的类.
------解决方案--------------------
我觉得的确修改起来比较麻烦
本身GridCtrl类就很烦琐 要实现你说的功能 不是一句两句能说清的
所以大家都不好回答吧
我想还不如自己写个CWnd 画网格 每个Cell里填充CRichEdit
你可以上codeproject下载这个MultilineListControl看看

------解决方案--------------------
楼上说的对.

你为什么不在listctrl的基础重绘呢?
那样资源又低.
------解决方案--------------------
BOOL CGridCellBase::Draw(CDC* pDC, int nRow, int nCol, CRect rect, BOOL bEraseBkgnd /*=TRUE*/)
{
.....
//pDC-> SetTextColor();修改字符的颜色,在这加你的代码
DrawText(pDC-> m_hDC, GetText(), -1, rect, GetFormat() | DT_NOPREFIX);//文本输出

pDC-> RestoreDC(nSavedDC);

return TRUE;
}
------解决方案--------------------
MSPY Private 是什么东东?

------解决方案--------------------
他是用WM_CTLCOLORBTN进行消息反射修改控件的背景色
这在MFCGridCtrl中不能达到你的要求
你自己试一下我说的方法
将这段代码替代
CString strText = GetText();
CString strTemp = strText.Left(1);
if ( strTemp == "1 " )
{
CSize szText = pDC-> GetTextExtent( strTemp );
for ( int x = 0; x < strText.GetLength(); x++ )
{
strTemp = strText.Mid(x, 1);
rect.left += szText.cx*x;
if ( x % 2 )
{
pDC-> SetTextColor( 0x00ff0000);
} else
{
pDC-> SetTextColor( 0x0000ff00);
}

DrawText(pDC-> m_hDC, strTemp, -1, rect, GetFormat() | DT_NOPREFIX);
}
} else DrawText(pDC-> m_hDC, GetText(), -1, rect, GetFormat() | DT_NOPREFIX);



原来的
DrawText(pDC-> m_hDC, GetText(), -1, rect, GetFormat() | DT_NOPREFIX);

看看demo中是否字符是变色显示的?