CListCtrl以及其派生类选中项颜色的改变
来源:互联网 发布:淘宝号一天刷几单安全 编辑:程序博客网 时间:2024/05/29 12:32
消息映射:
CListCtrl:
ON_NOTIFY(NM_CUSTOMDRAW,IDC_LIST,OnCustomdrawBaseListCtrl)
CListCtrl派生类:
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW,OnCustomdrawBaseListCtrl)
函数声明(CListCtrl类与派生类声明相同):
afx_msg void OnCustomdrawBaseListCtrl(NMHDR* pNMHDR, LRESULT* pResult);
函数实现:
void CBaseListCtrl::OnCustomdrawBaseListCtrl(NMHDR* pNMHDR, LRESULT* pResult){
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );
*pResult = CDRF_NOTIFYITEMDRAW;
if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage ){
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage ){
if (GetItemState((int)pLVCD->nmcd.dwItemSpec,LVIS_SELECTED)){
pLVCD->nmcd.uItemState &= ~CDIS_SELECTED;//~~~~~~~~~这句话太重要了
//pLVCD->nmcd.uItemState ^= CDIS_SELECTED;// The same right
pLVCD->clrTextBk = RGB(0,0,255);//蓝色背景
pLVCD->clrText = RGB(255,255,255);//白色文字
}
*pResult = CDRF_NEWFONT;
}
}
附带:
链表选中:
m_List.SetItem(index, 0, LVIF_STATE, NULL, 0, LVIS_SELECTED, LVIS_SELECTED, 0);
取消选中:
m_List.SetItemState(i,0,-1);
附图:
- CListCtrl以及其派生类选中项颜色的改变
- 从 CListCtrl 派生一个了的继承类CColorListCtrl,主要用于改变单元格的颜色
- CListCtrl选中颜色更改!
- 改变选中行的颜色
- 改变CListCtrl某行的颜色
- 改变CListCtrl中某一行的颜色
- clistctrl改变单元格的背景颜色
- 总结:怎样使用CListCtrl的派生类
- CListCtrl派生类
- 改变listView的选中的颜色
- android上改变listView的选中颜色
- android上改变listView的选中颜色
- 使用CSS3改变文本选中的颜色
- GEF 改变选中框的颜色
- 改变UITableView选中行高亮的颜色
- UITextView改变选中字的颜色
- tableView cell 选中颜色的改变
- ios 改变tableviewcell 的选中颜色
- 解决使用Sublime编写VBScript通过ADO连接Oracle数据库提示ADO未正确安装的问题
- Java中的数字基本运算和精度问题
- 题目1021:统计字符
- 海盗比酒量--蓝桥杯
- c3p0,dbcp和proxool使用心德
- CListCtrl以及其派生类选中项颜色的改变
- 程序人生的规划
- SQL注入
- c++ volatile用法(转)
- talend中的传值
- 使用BitmapFactory压缩图片大小
- 架构师之路(39)---IoC框架 - 王泽宾 - 博客频道 - CSDN.NET
- 2013年蓝桥杯 猜年龄
- Java 8简明教程