zoukankan      html  css  js  c++  java
  • 自绘listCtrl控件选中该行高亮(模拟windows)

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

      CDC *pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
        if (lpDrawItemStruct->itemState && LVIS_SELECTED)
        {
            CPen PenLine(PS_SOLID, 1, RGB(0, 0, 0));
            CPen *OldPenLine = pDC->SelectObject(&PenLine);
            rcItem.right -= 2;
            rcItem.bottom -= 2;
            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(2, 2, 2, 2);
            COLORREF m_color = RGB(71, 173, 255);
    
            for (int i = rcItem.Height() / 2; i>0; i--)
            {
                CPen pen(PS_SOLID, 1, 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(255, 255, 255));
        }
        else
        {
            pDC->SetTextColor(RGB(0, 0, 0));
            CBrush brush;
            brush.CreateSolidBrush(RGB(255, 255, 255));
            pDC->FillRect(rcItem, &brush);
        }
        CString strText = GetItemText(nRow, 0);
        CRect rcSubItem;
        GetSubItemRect(nRow, 0, LVIR_LABEL, rcSubItem);
        pDC->DrawText(strText, rcSubItem, DT_CENTER);

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

    图元的线型
    PS_SOLID 实线
    PS_DASH 虚线
    PS_DOT 点线
    PS_DASHDOT 点化线
    PS_DASHDOTDOT 双点化线
    赌上我的人生为梦想,即使是臭名远扬,也要我的名字响彻天堂
  • 相关阅读:
    linux命令--cp
    linux命令--mv
    CSS属性值定义语法中的符号说名
    select选项改变时获取选中的option的值
    JS截取字符串:slice(),substring()和substr()
    正则表达式进行密码验证
    利用@media实现IE hack
    javascript版1024游戏源码
    canvas写的一个小时钟demo
    gl.vertexAtteib3f P42 讲数据传给location参数指定的attribute变量
  • 原文地址:https://www.cnblogs.com/ye-ming/p/7088454.html
Copyright © 2011-2022 走看看