文档详情

关于改变当前行的颜色.doc

发布:2017-08-16约2.26千字共4页下载文档
文本预览下载声明
指定改变CListCtrl中某一行的颜色,比如说刚添加进去的一行,让它改变颜色,这样记录多了,容易看到自己刚刚加如的行,方便操作可查看,也可以让添加和修改的记录显示不一样的颜色,方便的多了,VC自带的没有这种功能。 1.首先从CListCtrl 继承一个类,命名为CXListCtrl 在头文件中加摸板 CMapDWORD, DWORD, COLORREF, COLORREF MapItemColor; 好在这里查找你的修改的颜色。 2.自己写个消息映射,可能添加不上,要自己写。 ? [cpp] view plaincopyprint? BEGIN_MESSAGE_MAP(CXListCtrl,?CListCtrl)?? ????ON_NOTIFY_REFLECT(NM_CUSTOMDRAW,?OnNMCustomdraw)?? //??ON_WM_SIZE() ?? END_MESSAGE_MAP()?? OnNMCustomdraw 为实现函数。 3.写OnNMCustomdraw函数。 [cpp] view plaincopyprint? void?CXListCtrlNew::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.修改指定一行的颜色。 ? [cpp] view plaincopyprint? void?CXListCtrl::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.修改全部行的颜色。 [cpp] view plaincopyprint? void?CXListCtrl::SetAllItemColor(DWORD?iItem,COLORREF?TextBkColor)?? {?? ????//INT_PTR?ncount?=?this-GetItemCount(); ?? ????if(iItem??0)?? ????{?? ???
显示全部
相似文档