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. C#泛型链表Demo

    /// <summary> /// 节点 /// </summary> /// <typeparam name="T"></typepar ...

  2. C# Aspose.Cells 使用汇总

    Workbook workbook = new Workbook(); //工作簿 Worksheet sheet = workbook.Worksheets[0]; //工作表 Cells cell ...

  3. 重装python 和 yum

    https://blog.csdn.net/ghostyusheng/article/details/https://segmentfault.com/q/1010000009194060/a-102 ...

  4. SpringBoot 结合 Thymeleaf 进行页面的跳转

    1.引入thymeleaf依赖 <!--thymeleaf--> <dependency> <groupId>org.springframework.boot< ...

  5. Java Web学习总结(9)——servlet和Jsp生命周期解读

    一.servlet的工作工程 Servlet是运行在Servlet容器(有时候也叫Servlet引擎,是web服务器和应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,解码基于MIME的 ...

  6. POJ——T3160 Father Christmas flymouse

    Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 3496   Accepted: 1191 缩点,然后每个新点跑一边SPFA ...

  7. [Python] Handle Exceptions to prevent crashes in Python

    Exceptions cause your application to crash. Handling them allows you to recover gracefully and keep ...

  8. 【shell学习】经常使用条件推断-字符,数字,文件

    IF 推断 之前也写过简单的shell脚本,也不是转职运维.和系统相关的工作比較少.所以不怎么熟练. 近期因为系统总是出现各种乱七八糟的问题,也没有人来协助.仅仅好自己写shell脚本了,都是些基础的 ...

  9. IsoAlgo3d - IDF/PCF pipeline 3d viewer

    IsoAlgo3d - IDF/PCF pipeline 3d viewer eryar@163.com Key Words. IDF, PCF, IsoAlgo, 3D 当前国际主流管道设计软件都可 ...

  10. RvmTranslator6.3 is released

    RvmTranslator6.3 is released eryar@163.com RvmTranslator can translate the RVM file exported by AVEV ...