.h文件

//网格线设置 [yal 2013.10.08]
 int        m_nGridStyle;      //风格 PS_DASH,PS_SOLID,。。。
 COLORREF   m_GridColor;       //颜色
 int        m_nGridWeigth;     //粗度1,2,...

void  setGridStyle(int nStyle);
 void  setGridWeight(int nWeight);
 void  setGridColor(COLORREF cr);

.cpp文件

CListCtrlCl::CListCtrlCl()
:m_nGridStyle(PS_SOLID)
,m_nGridWeigth(1)
,m_GridColor(RGB(255,255,255))
{
}
void CListCtrlCl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{

// TODO:  添加您的代码以绘制指定项

// 重绘网格线 [7/12/2013 dell]
 const MSG *msg = GetCurrentMessage();
 DefWindowProc( msg->message, msg->wParam, msg->lParam );

// Draw the lines only for LVS_REPORT mode
 if( (GetStyle() & LVS_TYPEMASK) == LVS_REPORT )
 {
  // Get the number of columns
  CClientDC dc(this );
  //yal 2013.10.08画有颜色的线
  CPen pen(m_nGridStyle,m_nGridWeigth,m_GridColor);
  CPen* oldpen=dc.SelectObject(&pen);

CHeaderCtrl* pHeader = (CHeaderCtrl*)GetDlgItem(0);
  int nColumnCount = pHeader->GetItemCount();

// The bottom of the header corresponds to the top of the line
  RECT rect, rectCol;
  pHeader->GetClientRect( &rect );
  int top = rect.bottom;

// Now get the client rect so we know the line length and
  // when to stop
  GetClientRect( &rect );

if( !GetItemRect( 1, &rectCol, LVIR_BOUNDS ))
   return;

int height1 = rectCol.bottom - rectCol.top;

// The border of the column is offset by the horz scroll
  int borderx = 0 - GetScrollPos( SB_HORZ );
  for( int i = 0; i < nColumnCount; i++ )
  {
   // Get the next border
   borderx += GetColumnWidth( i );

// if next border is outside client area, break out
   if( borderx >= rect.right ) break;

// Draw the line.
   dc.MoveTo( borderx-1, top/*top*/);
   dc.LineTo( borderx-1, height1+top+lpDrawItemStruct->itemID*height1/*nColumnCount*height1 + top*/);
  }

// Draw the horizontal grid lines

// First get the height
  if( !GetItemRect( 0, &rect, LVIR_BOUNDS ))
   return;

int height = rect.bottom - rect.top;

GetClientRect( &rect );
  int width = rect.right;

for(unsigned int i = 1; i <= lpDrawItemStruct->itemID+1; i++ )
  {
   dc.MoveTo( 0, top + height*i);
   dc.LineTo( width, top + height*i );
  }

dc.SelectObject(oldpen);
 }
}

mfc ListControl 重绘网格线相关推荐

  1. VC的MFC中重绘函数的使用总结(整理)

    原文网址:http://www.cnblogs.com/x8023z/archive/2008/12/09/mfc33.html 在刷新窗口时经常要调用重绘函数 MFC提供了三个函数用于窗口重绘 In ...

  2. MFC 之 重绘按键Cbutton

    上次我们学习了如何美化对话框的界面,这次我们为上次的对话框添加两个按钮,一个是关闭按钮,另一个是最小化按钮,好,现在我们先看一下效果: 是不是很难看,因为我们的对话框美化了,所以我们的按钮也要美化,因 ...

  3. MFC多视图与重绘效率

    MFC多视图与重绘效率 多窗口同步更新 CDocument::UpdateAllViews(CView* pSender,LPARAM lHint,CObject* pHint):通知所有与CDocu ...

  4. 28、深入浅出MFC学习笔记,View功能的加强和重绘效率的提高

    1.同一份Document的多个views,在Document的一个view改变了后,如何同步其它view呢? 让所有的Views 同步更新资料的关键在于两个函数: 1)CDocument::Upda ...

  5. 孙鑫-MFC笔记六--绘图,重绘

    Windows颜色对话框功能的添加: MFC提供了CColorDialog类,方便创建颜色对话框. CColorDialog dlg: dlg.DoModal(); 默认为黑色.即首参为值为0. 保存 ...

  6. MFC进度条重绘 (CProgressCtrl)

    MFC进度条(CProgressCtrl) 重绘 先看一张图: 新建一个 继承自 CProgressCtrl 的类,然后添加 OnPaint 消息处理函数,此函数代码如下: void CNewProg ...

  7. 解决MFC 的 CButton改变样式问题,使用重绘方式。(转载)

    要想修改CButton类按钮背景颜色和文字颜色,必须利用自绘方法对按钮进行重新绘制.这可以通过定义一个以CButton为基类的新按钮类来实现.以下为具体的实现方法: 方法一: 加入一个新类,类名:CM ...

  8. MFC-CListCtrl重绘,添加按钮到单元格

    原文链接 MFC Listctrl 不支持单元格颜色设置,以及单击其中某一单元格时高亮显示,要想达成自己的目的,就只能对其重绘. 关于单元格中按钮的添加,说一下思路,首先要重写CButton类,将其单 ...

  9. vc++图像保存,重绘

    新建mfc应用程序,单文档 增加绘图 分别增加命令响应 添加成员变量UINIT 图形可以运行,如何保存呢?(一个集合类,CPtArt) 用一个类的对象来保存一个图形的三个要素 所以插入一个新的类(通常 ...

最新文章

  1. jenkins docker 安装_docker 安装 Jenkins
  2. iOS UICollectionView的实现
  3. jvm性能调优实战 -60 线上系统的JVM参数优化、GC问题定位排查、OOM分析解决
  4. 关于错误的那点事——惨不忍睹的错误
  5. Qt5使用windeployqt后 exe文件还是无法执行 无法定位程序输入点 _ZdaPvj 于动态链接库 libstdc++-6.dll
  6. 类如何调用自己的私有成员_企业如何快速获取自己的私有领域流量?
  7. 【Kafka】docker下kafka报错 IOException: Connection to xxx:19093 (id: 1002 rack: null) failed
  8. hihocoder第212周-动态规划
  9. 从零学ELK系列(一):为什么要跟我学从零学ELK系列
  10. SpringBoot AOP 理解和用途
  11. 人工智能生物学深度解析,附源代码
  12. 生动形象!一个故事讲完CPU的工作原理
  13. 激光雷达互动交互大屏全息互动投影Tuio多点触摸检测驱动引擎
  14. java pdf 水印_java 如何给pdf文件加水印
  15. yunos6 是android几,成功脱离安卓?阿里首款国产操作系统YunOS6或将发布!
  16. 空间分辨率、频谱分辨率、辐射计量分辨率、时间分辨率。
  17. DirectDraw关于blt的一些注意事项
  18. android 寺库trytry_美图与寺库达成战略合作 美图美妆将由 TryTry 运营
  19. 华为最新款手机2021款鸿蒙,华为最新款手机2021款_华为2021即将上市新款手机
  20. R语言数据分析、展现与实例(06)

热门文章

  1. smarty中定义变量
  2. android 摄像头方向,android:调整摄像头方向
  3. 【Windows】windows10自己下载安装的主题壁纸位置
  4. Netty LengthFieldBasedFrameDecoder
  5. 433遥控收发模块使用介绍
  6. Kaggle 2022 年鉴发布!涵盖竞赛趋势 57场比赛方案汇总!
  7. msvcp120.dll丢失的解决方法(仅一步解决)
  8. SABER认证流程,SABER和SASO什么关系,
  9. 笔记本内存条怎么选?DDR3?DDR3L?
  10. php安装oci8,php5安装oci8