大家经常用到listctrl 做表格 为了好看,要给每行设置不同背景色。很实用的一个小技巧。

1:首先在.h里添加以下消息

afx_msg void OnDrawColorForMyList(NMHDR *pNmHdr, LRESULT *pResult )

2:然后在.cpp里添加入口消息

ON_NOTIFY( NM_CUSTOMDRAW, IDC_LIST1, OnDrawColorForList )  //为改变颜色添加的消息

3:最后添加函数

void CTDlg::OnDrawColorForList ( NMHDR *pNmHdr, LRESULT *pResult )

{

   NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNmHdr );

*pResult = CDRF_DODEFAULT;

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 clrNewTextColor, clrNewBkColor;       

       int    nItem = static_cast<int>( pLVCD->nmcd.dwItemSpec );//获得子项

if( nItem%2 ==0 )//设置背景色

      {

        clrNewBkColor = RGB( 240, 240, 240 ); //偶数行背景色为灰色

clrNewTextColor = RGB( 255, 0, 0 );

      }

      else

     {

       clrNewBkColor = RGB( 255, 255, 255 ); //奇数行背景色为白色

clrNewTextColor = RGB( 0, 0, 0 );

     }

pLVCD->clrText = clrNewTextColor;

       pLVCD->clrTextBk = clrNewBkColor;

*pResult = CDRF_DODEFAULT;

   }

}

VC ClistCtrl不同行背景色的更多相关文章

  1. VC CListCtrl 第一列列宽自适应

    原文链接: http://www.cnblogs.com/sephil/archive/2011/04/03/2004384.html 今天用VC写工具的时候用到CListView,并且ListCtr ...

  2. iOS 开发--转场动画

    "用过格瓦拉电影,或者其他app可能都知道,一种点击按钮用放大效果实现转场的动画现在很流行,效果大致如下:" 本文主讲SWIFT版,OC版在后面会留下Demo下载 在iOS中,在同 ...

  3. 教你实现类似于格瓦拉启动页中的放大转场动画(OC&Swift)

    教你实现类似于格瓦拉启动页中的放大转场动画(OC&Swift) 一.前言 用过格瓦拉电影,或者其他app可能都知道,一种点击按钮用放大效果实现转场的动画现在很流行,效果大致如下 在iOS中,在 ...

  4. vc中改变对话框的背景色

    ---- 笔者曾在<软件报>2000年第5期中讨论过如何改变控件的颜色,但还有相当一部分的读者来信提问:一个基于对话框的MFC AppWizard应用程序中,如何改变对话框的背景颜色呢?对 ...

  5. VC的CListCtrl控件

    1. CListCtrl 样式及设置 2. 扩展样式设置 3. 数据插入 4. 一直选中Item 5. 选中和取消选中Item 6. 得到CListCtrl中所有行的checkbox的状态 7. 得到 ...

  6. VC、MFC中设置控件的背景色、标题、字体颜色、字体要注意的地方[转]

    在MFC中设置控件的背景色.字体.字体颜色.标题等属性主要是利用OnCtlColor函数来实现. 如: HBRUSH CAlarm::OnCtlColor(CDC* pDC, CWnd* pWnd, ...

  7. VC++ 设置控件显示文本的前景色、背景色以及字体

    在每个控件开始绘制之前,都会向其父窗口发送WM_CTLCOLOR通告消息,在该消息的处理函数中,可以设置控件显示文本的前景色.背景色以及字体.该消息处理函数还要求返回一个画刷的句柄,用于在控件具体的绘 ...

  8. VC改变CListCtrl 表格中文字颜色,和背景颜色。

    (1)首先需要自定义一个类,派生自CListCtrl.如下图: (2)然后在派生类的头文件中声明一个成员函数,如下图: (3)在源文件中实现该成员方法,如图: (4)在源文件中做消息映射,如图: 这时 ...

  9. VC/MFC列表CListCtrl类的LVCOLUMN和LVITEM详解

      列表视图控件(List Control)列表视图控件是一种非常常用的控件,在需要以报表形式显示数据时,列表控件通常是最好的选择,许多专用的数据报表控件,也是在它的基础上派生而来.与树视图类似,列表 ...

随机推荐

  1. UIImageView的图片居中问题

    原文链接地址:http://www.ganlvji.com/?p=139 原文链接地址:http://blog.csdn.net/zhoutao198712/article/details/87620 ...

  2. IE11登陆交行网银崩溃

    1.打开IE11兼容性视图 2.交通银行就填入95559.com.cn 3.重新打开IE11登录网银

  3. [tty与uart]理解线路规程的作用

    转自:http://biancheng.dnbcw.info/linux/336240.html Linux OS的设备驱动有相当经典的抽象思想以及分层思想.与通信世界里面的思想相一致. 一.在Lin ...

  4. Maven exclusion

    <dependency><exclusions> <exclusion> <groupId>xx</group> <artifactI ...

  5. BIP_开发案例07_将原有Report Builer报表全部转为XML Publisher形式(案例)

    2014-05-31 Created By BaoXinjian

  6. cf 605A Sorting Railway Cars 贪心 简单题

    其实就是求总长度 - 一个最长“连续”自序列的长度 最长“连续”自序列即一个最长的lis,并且这个lis的值刚好是连续的,比如4,5,6... 遍历一遍,贪心就是了 遍历到第i个时,此时值为a[i], ...

  7. 何时要打开stm32的AFIO时钟

    STM32的管脚配置一般有2个:Default和rinmap,如果使用default就不需要打开AFIO,否则使用后者就需要打开3个时钟:GPIO时钟.外设功能时钟和AFIO时钟. 一般在涉及外中断配 ...

  8. CSS学习笔记之定位

    position 有4中不同类型的定位,分别为static.relative.absolute.fixed 1.static 元素框正常生成.块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创 ...

  9. Linux 下绑定域名与IP地址

    在 Linux 下,hosts 文件的路径是 /etc/hosts,此文件需要有root权限才可编辑,条目也是通过“IP 域名”的格式将域名与IP进行绑定. 对 Linux 的 hosts 配置文件的 ...

  10. Microsoft visual studio中文字样输出

    解决办法: 可以尝试下通过: 1.file->高级保存选项-> 2.工具->选项->文本编辑器->自动检测不带签名的UTF-8编码