MFC修改list某一行
来源:互联网 发布:爱哭知乎 编辑:程序博客网 时间:2024/05/21 11:15
指定改变listctrl中某一行的颜色
指定改变listctrl中某一行的颜色,比如说刚添加进去的一行,让它改变颜色,这样记录多了,容易看到自己刚刚加如的行,方便操作可查看,也可以让添加和修改的记录显示不一样的颜色,方便的多了,VC自带的没有这种功能。
1. 首先从ClistCtrl 继承一个类,命名为CmyListCtrlNew
在头文件中加摸板
CMap<DWORD , DWORD& , COLORREF , COLORREF&> MapItemColor;
好在这里查找你的修改的颜色。
2. 自己写个消息映射,可能添加不上,要自己写。
BEGIN_MESSAGE_MAP(CMyListCtrlNew, CListCtrl)
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnNMCustomdraw)
// ON_WM_SIZE()
END_MESSAGE_MAP()
OnNMCustomdraw 为实现函数。
3. 写OnNMCustomdraw函数。
void CMyListCtrlNew::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: Add your control notification handler code here
*pResult = CDRF_DODEFAULT;
NMLVCUSTOMDRAW * lplvdr=(NMLVCUSTOMDRAW*)pNMHDR;
NMCUSTOMDRAW &nmcd = lplvdr->nmcd;
switch(lplvdr->nmcd.dwDrawStage)//判断状态
{
case CDDS_PREPAINT:
{
*pResult = CDRF_NOTIFYITEMDRAW;
break;
}
case CDDS_ITEMPREPAINT://如果为画ITEM之前就要进行颜色的改变
{
COLORREF ItemColor;
if(MapItemColor.Lookup(nmcd.dwItemSpec, ItemColor))
//根据在SetItemColor(DWORD iItem, COLORREF color) 设置的//ITEM号和COLORREF 在摸板中查找,然后进行颜色赋值。
{
//lplvdr->clrText = RGB(0,0,0);//ItemColor;
lplvdr->clrTextBk = ItemColor;
*pResult = CDRF_DODEFAULT;
}
}
break;
}
}
4. 修改指定一行的颜色。
void CMyListCtrlNew::SetItemColor(DWORD iItem, COLORREF color)
{
// m_iCurrentItem = iItem;
// m_CurrentColor = color;
MapItemColor.SetAt(iItem, color);//设置某行的颜色。
this->RedrawItems(iItem, iItem);//重新染色
//this->SetCheck(iItem,1);
this->SetFocus();//设置焦点
UpdateWindow();
}
5. 修改全部行的颜色。
void CMyListCtrlNew::SetAllItemColor(DWORD iItem,COLORREF TextBkColor)
{
//INT_PTR ncount = this->GetItemCount();
if(iItem > 0)
{
for(DWORD numItem = 0; numItem < iItem ;numItem ++)
{
//iItem = i;
MapItemColor.SetAt(numItem, TextBkColor);
this->RedrawItems(numItem, numItem);
}
}
return;
}
- MFC修改list某一行
- Sed修改文件中的某一行
- 修改UIcontrollerTableView某一行的高度
- MFC listCtrl选中某一项,LIST失去焦点时,该项仍然显示高亮
- 如何通过 点击list控件中的某一列使它传递给 一个修改的对话框
- MFC中 修改list控件单元格的颜色
- [MFC] listctrl控件实现对某一行指定颜色
- MFC List
- SQL 删除表中的某一行或者修改表结构
- CStdioFile对文件的某一行进行修改
- CStdioFile对文件的某一行进行修改
- 关于table.LoadDataRow修改datable某一行的值
- 获取textarea某一行,并修改该行的内容
- 查找List 某一段数据
- 修改JOB跳过某一step
- MFC中设置ListControl选中某一行,并且滑动(跳转)到选择行位置
- MFC中获得编辑框中指定的某一行的字符内容
- mfc中设置listcontrol某一行的背景和文字颜色
- HTTP状态码解释
- 第三周作业
- Software AG Installer Command line options
- 黑马程序员_java基础_java环境搭建及环境变量的配置(第1天)
- 第三周作业
- MFC修改list某一行
- echo
- 第三周作业
- zxing 的常见错误
- 给Python初学者的一些技巧
- 百度Bae云平台安装dedecms图文教程
- IOS开发之不同版本适配问题3(#ifdef __IPHONE_7_0 BaseSDK Development Target)
- 在VS2010中使用SVN
- 让BI在CRM云上起舞——Oracle Cloud CRM整合德昂BI解决方案推介会