MFC 设置ClistCtr 选中状态时的背景色
来源:互联网 发布:淘宝店铺布局分析报告 编辑:程序博客网 时间:2024/04/27 22:13
MFC CListCtrl 如何设置选中状态的背景色OnCustomDraw
问题:CListCtrl如何高亮选中一行 http://zhidao.baidu.com/question/100664911.html扩展:单行、双行及完成状态的字体等等。。。主要是改写CListCtrl中的ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)消息,1、在ListCtrlEx.h中增加 http://hi.baidu.com/juncox/blog/item/cf1f310fa5f2d0c37bcbe12d.html//{{AFX_MSG(CListCtrlEx)afx_msg void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);//}}AFX_MSG2、进行消息映射BEGIN_MESSAGE_MAP(CListCtrlEx, CListCtrl)//{{AFX_MSG_MAP(CListCtrlEx)ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)//}}AFX_MSG_MAPEND_MESSAGE_MAP()3、函数本体如下//////////////////////////////////////////////////////////////////////////void CListCtrlEx::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult) { NMLVCUSTOMDRAW* lplvcd = (NMLVCUSTOMDRAW*)(pNMHDR); int nRow = (int)lplvcd->nmcd.dwItemSpec; switch (lplvcd->nmcd.dwDrawStage) {case CDDS_PREPAINT: *pResult |= CDRF_NOTIFYITEMDRAW; break; case CDDS_ITEMPREPAINT: //------------------------------------------------------ // 单行与双行的颜色 [Juncox 6月15日 11:57:29] if(nRow & 1){ // 单行 lplvcd->clrTextBk = RGB(0xFF,0xFF,0xFF); lplvcd->clrText = RGB(0x00,0x00,0x00); *pResult = CDRF_NEWFONT; }else{ // 双行 lplvcd->clrTextBk = RGB(0xBB,0xCC,0xFF); lplvcd->clrText = RGB(0x44,0x33,0x00); *pResult = CDRF_NEWFONT; } //------------------------------------------------------ // 打勾项 [Juncox 6月15日 11:57:38] if(GetCheck(nRow) && (GetExtendedStyle() & LVS_EX_CHECKBOXES)) { lplvcd->clrTextBk = RGB(0x00,0x00,0x80); lplvcd->clrText = RGB(0xFF,0xFF,0x00); //-------------------------------------------- // 设置字体 HFONT hFont = (HFONT)this->SendMessage(WM_GETFONT); LOGFONT lf; GetObject(hFont, sizeof(lf), &lf); lf.lfStrikeOut = TRUE; // 删除线 lf.lfItalic = TRUE; // 斜体 hFont = CreateFontIndirect(&lf); SelectObject(lplvcd->nmcd.hdc, hFont); DeleteObject(hFont); *pResult = CDRF_NEWFONT; } //------------------------------------------------------ // 选中行 [Juncox 6月15日 11:57:42] if( GetItemState(nRow, CDIS_SELECTED) ) { // 预留BUG,看有多少人是摘自这里, CDIS_SELECTED前少取反号,且把异或为与 // 使用此代码段,请留下Juncox@163.com说明 lplvcd->nmcd.uItemState ^= CDIS_SELECTED;// 预留BUG lplvcd->clrTextBk =RGB(255, 0, 0); lplvcd->clrText = RGB(0, 0, 255); *pResult = CDRF_NEWFONT; } break;default: *pResult = CDRF_DODEFAULT; break;}}
0 0
- MFC 设置ClistCtr 选中状态时的背景色
- android listview设置选中时的item的背景色
- 设置tableview选中行的背景色
- MFC中设置窗体的背景色
- MFC对话框背景色的设置
- TreeList 选中节点时图标状态和背景色
- TreeList 选中节点时图标状态和背景色
- MFC 设置窗口背景色
- 设置 cell 的背景色,背景图 ,选中效果
- cell选中的背景色
- iOS开发>>>设置UITableView背景色和选中背景色
- wpf datagrid设置右键菜单打开时选中项的背景色
- android 设置listview item选中背景色
- android 设置listview item选中背景色
- UIButton设置高亮状态下的背景色【原创】
- MFC中设置窗体的背景色,图片,插入音乐
- 设置HTML全屏时的背景色
- Swing之JTable篇设置表格选中行的前景色和背景色
- 项目里面常用的加密方式base64 AES MD5 sha1
- 线程类Thread的API接口分析系列之定时器Timer
- react-native iOS 原生组件 swift版
- 写一个简单的存储过程,并C#调用
- 机器学习and决策树学习笔记
- MFC 设置ClistCtr 选中状态时的背景色
- x11vnc远程桌面
- 特征向量的几何意义
- nginx 限流
- Android studio 导入包时出现错误Error:(1, 0) Plugin with id 'com.android.application' not found.
- oracle常用命令2
- MyBatis实战总结
- xml中转义字符
- #文件编程#------文件类型指针