现在想在   CListCtrl   中显示三列:行号  标题  描述信息
1     百度   想知道什么就去百度
2     yahoo   ....
3     sohu    .....如何在标题列的字体下面加  下划线(___)多谢帮忙

解决方案 »

  1.   

    如何在标题列的字体下面加 下划线(___)
    ================
    自绘是必须的,CListCtrl有个新的特性叫做Custom Draw,具体的你去看下这个:参考
      

  2.   

    多谢各位的帮助
    通过各方努力此问题已搞定分享给大家参考:
    1,新建一个类继承CListCtrl 如:class CListCtrlEx : public CListCtrl
    2, 修改List Control控件的属性:Owner Draw Fixed = true
    3,[类视图]tab页找到刚才新建的类找到属性的[重写]tab页中DrawItem方法,内容如下:
    void CListCtrlEx::DrawItem(LPDRAWITEMSTRUCT lpDIS /*lpDrawItemStruct*/)
    {
    if (lpDIS->itemAction & ODA_DRAWENTIRE)
    {
        CString szText;
        for (int i = 0; i < 3; i++)
         {
          //添加下划线的列号注意列号从0开始       
          if(i == 2){
    CRect rec;
    rec = rcItem;
            //获取文字长度
    CSize textsize = pDC->GetTextExtent(szText);
    rec.right = rec.left+textsize.cx;        //划线颜色
    CPen pen(PS_SOLID,1,RGB(0,255,0));
    CPen *oldPen = pDC->SelectObject(&pen);
            //划线
    pDC->MoveTo(rcItem.left,rcItem.bottom-3);
    pDC->LineTo(rec.right,rcItem.bottom-3);
            //写文本
            pDC->DrawText(szText, lstrlen(szText),        &rcItem,DT_VCENTER|DT_NOPREFIX|DT_SINGLELINE);
        //其他不用处理的列写文本
        }else{
               pDC->DrawText(szText, lstrlen(szText), &rcItem,DT_VCENTER|DT_NOPREFIX|DT_SINGLELINE);
        }
      }
     }
    }