zoukankan      html  css  js  c++  java
  • CListCtrl 隔行变色

    响应消息

    ON_NOTIFY(NM_CUSTOMDRAW, ListCtrl的ID, OnNMCustomdrawList)

    实现函数OnNMCustomdrawList

    void CFinishWellToFind::OnNMCustomdrawList(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 );

      POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();
      int index = m_ListCtrl.GetNextSelectedItem(pos);

      if (index == nItem)//如果要刷新的项为当前选择的项,则将文字设为白色,背景色设为蓝色
      {
       clrNewTextColor = RGB(255,255,255);        //Set the text to white
       clrNewBkColor = RGB(49,106,197);        //Set the background color to blue
      }
      else if (nItem % 2) //奇偶行隔行变色
      {
       clrNewTextColor = RGB(0,0,0);        //set the text black
       clrNewBkColor = RGB(200,200,220);    //leave the background color white
      }
      else
      {
       clrNewTextColor = RGB(0,0,0);        //set the text black
       clrNewBkColor = RGB(255,255,255);    //leave the background color white
      }

      pLVCD->clrText = clrNewTextColor;
      pLVCD->clrTextBk = clrNewBkColor;

      *pResult = CDRF_DODEFAULT;
     }

    }

  • 相关阅读:
    解决eclipse自动格式化影响svn提交的问题
    XShell下载安装并连接阿里云
    阿里云服务器购买选择
    三线程循环打印ABC流程解释
    eclipse个人开发较常用的快捷键
    eclipse调试的一些技巧
    Java序列化与反序列化
    vmware vsphere添加磁盘,不重启检测
    win10国内生态-恶心的经历
    本地win10 vmware 虚拟机centos7系统初始化网络配置
  • 原文地址:https://www.cnblogs.com/ye-ming/p/9262802.html
Copyright © 2011-2022 走看看