CListCtrl的派生类CMyListCtrl的DrawItem()函数里添加代码

  CDC *pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
if (lpDrawItemStruct->itemState && LVIS_SELECTED)
{
CPen PenLine(PS_SOLID, , RGB(, , ));
CPen *OldPenLine = pDC->SelectObject(&PenLine);
rcItem.right -= ;
rcItem.bottom -= ;
pDC->MoveTo(rcItem.left, rcItem.top);
pDC->LineTo(rcItem.right, rcItem.top);
pDC->MoveTo(rcItem.left, rcItem.top);
pDC->LineTo(rcItem.left, rcItem.bottom);
pDC->MoveTo(rcItem.left, rcItem.bottom);
pDC->LineTo(rcItem.right, rcItem.bottom);
pDC->MoveTo(rcItem.right, rcItem.top);
pDC->LineTo(rcItem.right, rcItem.bottom);
pDC->SelectObject(OldPenLine);
rcItem.DeflateRect(, , , );
COLORREF m_color = RGB(, , ); for (int i = rcItem.Height() / ; i>; i--)
{
CPen pen(PS_SOLID, , m_color);
CPen *OldPen = pDC->SelectObject(&pen);
pDC->MoveTo(rcItem.left, rcItem.top + i);
pDC->LineTo(rcItem.right, rcItem.top + i);
pDC->MoveTo(rcItem.left, rcItem.bottom - i);
pDC->LineTo(rcItem.right, rcItem.bottom - i);
pDC->SelectObject(OldPen);
}
pDC->SetTextColor(RGB(, , ));
}
else
{
pDC->SetTextColor(RGB(, , ));
CBrush brush;
brush.CreateSolidBrush(RGB(, , ));
pDC->FillRect(rcItem, &brush);
}
CString strText = GetItemText(nRow, );
CRect rcSubItem;
GetSubItemRect(nRow, , LVIR_LABEL, rcSubItem);
pDC->DrawText(strText, rcSubItem, DT_CENTER);

PenLine是在框内画线,模仿被选中的样子

图元的线型
PS_SOLID 实线
PS_DASH 虚线
PS_DOT 点线
PS_DASHDOT 点化线
PS_DASHDOTDOT 双点化线

自绘listCtrl控件选中该行高亮(模拟windows)的更多相关文章

  1. ListCtrl控件

    一 CListCtrl类型 LVS_EDITLABELS LVS_OWNERDRAWFIXED LVS_REPORT LVS_SHOWSELALWAYS LVS_SINGLESEL LVS_SMALL ...

  2. VC/MFC ListCtrl 控件功能使用汇总(转)

    以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFC:CListCtrl类 SDK:以 “ListView_”开头的一些宏.如 ListView_InsertCol ...

  3. LISTCTRL控件方法

    以下未经说明,listctrl默认view风格为report --------------------------------------------------------------------- ...

  4. duilib中ListCtrl控件的实现

    转载请说明出处,谢谢~~ 昨天在编程群里聊天,提到了ListCtrl,然后有网友找我,他需要做一个ListCtrl控件,我看过需求后接下了这个活.今天就把大致的思路和过程记录一下.首先看<任务书 ...

  5. 重绘MenuStrip 控件

    重绘MenuStrip控件 效果如图: 首先添加 CustomProfessionalRenderer类 用于重绘控件菜单样式 /// <summary> /// 自定义MenuStrip ...

  6. ListCtrl控件的使用

    list contrl控件的使用 .建立基于对话框的应用程序,布置界面,设置属性. 注意添加的是listctrl控件,不是listbox控件,在控件工具箱的倒数第五行list control控件. 属 ...

  7. Jquery Mobile下设置radio控件选中

    问题: .html文件头部引入了: <script src="js/jquery.js"></script> <script src="js ...

  8. ListCtrl控件着色

    最近在写一款山寨的反病毒软件,大致功能已经实现,还有一些细小的环节需要细化. 其中,在界面编程中,就用到了给ListCtrl控件着色,查看了网上一些文章,终于实现了. 其实说白了,原理很简单,就是Li ...

  9. WPF如何更改系统控件的默认高亮颜色 (Highlight brush)

    我们在用WPF时, 经常会对系统控件的默认高亮等等颜色进行更改. 以前通常是用controlTemplate来实现. 今天发现一个更合理或者简单的方法: 用系统默认颜色的key, 比如 SystemC ...

随机推荐

  1. vue25---vue2.0变化

    组件模版: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  2. 让透明div里的文字不透明

    最近在工作中遇到一个问题,我在div里写上文字,当我把div变为半透明的时候,里面的文字也会随之透明.情况如下: <div class="box"> 这是一段不应该透明 ...

  3. Django 框架篇(四) : 视图(view)详解 以及 路由系统(url)

    |--Django的View(视图) |-- CBV和FBV: |-- 给视图增加装饰器: |-- request对象: |-- response对象: |-- Django的路由系统(url): | ...

  4. Python(三) 变量与运算符

    一.什么是变量 变量 = [1,2] 二.变量的命名规则 字母,数字,下划线,首字母不能是数字 系统关键字 不能用在变量名中 保留关键字 区别大小写 a=1,   a='1',   a=(1,2),  ...

  5. stylus中文版参考文档之综述

    http://www.zhangxinxu.com/jq/stylus/

  6. js获取当前时间年份,处理年月日

    js中获得当前时间年份.月份.日期       //获取完整的日期 var date=new Date; var y = date.getFullYear()var m = date.getMonth ...

  7. BZOJ3294: [Cqoi2011]放棋子(计数Dp,组合数学)

    题目链接 解题思路: 发现一个性质,如果考虑一个合法的方案可以将行和列都压到一起,也就是说,在占用行数和列数一定的情况下,行列互换是不会影响答案的,那么考虑使用如下方程: $f[i][j][k]$为占 ...

  8. 紫书 例题 9-14 UVa 1218 (树形dp)

    这道题有个初始值设成1e9, 然后这个值是要加很多次的,然后就会溢出变成负数, 然后就一直WA, 找这个bug找了一个小时--以后不能随便这样设那么大, 要考虑会不会加很多次然后溢出. 讲一下思路. ...

  9. Mysql学习总结(3)——MySql语句大全:创建、授权、查询、修改等

    一.用户创建.权限.删除 1.连接MySql操作 连接:mysql -h 主机地址 -u 用户名 -p 用户密码 (注:u与root可以不用加空格,其它也一样) 断开:exit (回车) 打开cmd, ...

  10. SQL 自增列清零方法

    SQL Identity自增列清零方法1.使用DBCC控制台命令: dbcc checkident(表名,RESEED,0) 2.truncate table 也可将当前标识值清零 但当有外键等约束时 ...