如何修改CListCtrl中每个网格的背景颜色? 谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CListCtrl m_listctrl;用 m_listctrl.SetBkColor(RGB(200,180,240)); m_listctrl.SetTextColor(RGB(0,0,0)); m_listctrl.SetTextBkColor(RGB(177,151,240)); 我指的是每个Cell,不是整体的背景. 这个要OWNDRAW,去codeguru吧。上面有很多例子 好像可以在插入每一行的时候,设置那个LVITEM structure 看看这里吧,http://www.codeproject.com/listctrl/xlistctrl.asp,用xlistctrl,绝对能够满足你的要求! 这是我刚知道的,呵呵,共享:头文件中定义消息(在关键字“//}}AFX_MSG”之外): afx_msg void OnCustomdrawList(NMHDR*, LRESULT*);实现文件中响应消息(在关键字“//}}AFX_MSG”之外): ON_NOTIFY(NM_CUSTOMDRAW, IDC_STRENGTHENMAP, OnCustomdrawList)实现文件中函数:void CYourClass::OnCustomdrawList(NMHDR* pNMHDR, LRESULT* pResult){ NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR); // Take the default processing unless we set this to something else below. *pResult = 0; if(CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage) *pResult = CDRF_NOTIFYITEMDRAW; else if(CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage) *pResult = CDRF_NOTIFYSUBITEMDRAW; else if((CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage) { COLORREF crBkgnd; int iCurRow = static_cast<int>( pLVCD->nmcd.dwItemSpec ); int iCurColumn = pLVCD->iSubItem; if(iCurRow == 需要定义背景颜色的行号 && iCurColumn == 列号) {//这里是控制修改背景色的单元格所在的位置; crBkgnd = RGB(0, 0, 255);//背景色设为蓝色; break; } else crBkgnd = RGB(255, 255, 255);//其他设为白色; pLVCD->clrTextBk = crBkgnd; *pResult = CDRF_DODEFAULT; }} 求助:VC怎么访问硬件信息,读取数据 关于视频监控软件的界面问题 我在 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 加入 一条语句就有错误? 如何为关键字建立倒排索引啊? 如何NEW一个指定维数和类型的数组,我的数组太大,估计自己处理已经溢出。 如何在一个类的成员函数里调用另一个类的成员函数? 关于读INI文件的问题。 汉字国标码? 请求大家帮我出出注意! 网上有(深入浅出mfc)这本书可以下载吗?? 可不可以把一篇WORD文档作为一个字段存到数据库中??? 如何关闭IE
用 m_listctrl.SetBkColor(RGB(200,180,240));
m_listctrl.SetTextColor(RGB(0,0,0));
m_listctrl.SetTextBkColor(RGB(177,151,240));
头文件中定义消息(在关键字“//}}AFX_MSG”之外):
afx_msg void OnCustomdrawList(NMHDR*, LRESULT*);
实现文件中响应消息(在关键字“//}}AFX_MSG”之外):
ON_NOTIFY(NM_CUSTOMDRAW, IDC_STRENGTHENMAP, OnCustomdrawList)
实现文件中函数:
void CYourClass::OnCustomdrawList(NMHDR* pNMHDR, LRESULT* pResult)
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR); // Take the default processing unless we set this to something else below.
*pResult = 0; if(CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage)
*pResult = CDRF_NOTIFYITEMDRAW;
else if(CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage)
*pResult = CDRF_NOTIFYSUBITEMDRAW;
else if((CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage)
{
COLORREF crBkgnd;
int iCurRow = static_cast<int>( pLVCD->nmcd.dwItemSpec );
int iCurColumn = pLVCD->iSubItem;
if(iCurRow == 需要定义背景颜色的行号 && iCurColumn == 列号)
{//这里是控制修改背景色的单元格所在的位置;
crBkgnd = RGB(0, 0, 255);//背景色设为蓝色;
break;
}
else
crBkgnd = RGB(255, 255, 255);//其他设为白色; pLVCD->clrTextBk = crBkgnd; *pResult = CDRF_DODEFAULT;
}
}