我想将单元格的高度调高,任意设置指定单元格的颜色
请给出实现的具体代码,谢谢啦!
有人指点重载ListCtrl控件就可以了。用DrawItem函数。
但我还是不知道怎么做,请详细写下代码

解决方案 »

  1.   

    创建一个新类,从CListCtrl继承,重写OnDrawItem函数!
      

  2.   

    需要重画某一行时,会调用DrawItem, 主要看看DrawItem函数参数void CMFListCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
    {
    CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC);

    ASSERT(pDC != NULL);
    ASSERT(pDC->m_hDC != NULL);

    CRect rcClient; CMemDC memDC; CRect rcItem(lpDrawItemStruct->rcItem);
    int nItem = lpDrawItemStruct->itemID;//Save DC;
    int nSave = pDC->SaveDC();// Get item data of first column;
    LV_ITEM lvi;
    lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
    lvi.iItem = nItem;
    lvi.iSubItem = 0;
    lvi.pszText = szBuf;
    lvi.cchTextMax = sizeof(szBuf);
    lvi.stateMask = 0xFFFF;     
    GetItem(&lvi); CRect rcOtherLabel; GetSubItemRect(nItem, nColumn, LVIR_LABEL, rcOtherLabel);

    GetItemText(nItem, nColumn, szBuf, sizeof(szBuf));
             
             有了每个单元格的信息(矩形框,文字,图标)想怎么画就怎么画。
      

  3.   

    需要什么头文件吗
    提示'CMemDC' : undeclared identifier
      

  4.   

    我在msdn中找到了,谢谢,这就结贴