CListCtrl 中标题的边框黑色单元格

问题描述 投票:0回答:1

我有我的标题的派生类,它可以更改

CListCtrl
的标题,使用此代码我可以更改标题的颜色并且书写为黑色,我想更改标题中单元格的边框

void MyHeader::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
       
    *pResult = CDRF_DODEFAULT;

    NMLVCUSTOMDRAW *pCD = (NMLVCUSTOMDRAW*)pNMHDR; 

    if (pNMCD->dwDrawStage == CDDS_ITEMPREPAINT)
    {
        HDITEM hditem;
        TCHAR buffer[MAX_PATH] = { 0 };
        SecureZeroMemory(&hditem, sizeof(HDITEM));
        hditem.mask = HDI_TEXT;
        hditem.pszText = buffer;
        hditem.cchTextMax = MAX_PATH;
        GetItem(pNMCD->dwItemSpec, &hditem);
        CDC* pDC = CDC::FromHandle(pNMCD->hdc);
        pDC->SetTextColor(RGB(0, 0, 0));
        pDC->SetBkColor(RGB(251, 206, 177));
        CString str(buffer);
                
        pDC->DrawText(str, CRect(pNMCD->rc), DT_VCENTER | DT_LEFT);
        *pResult = CDRF_SKIPDEFAULT;
    }   
}
c++ mfc
1个回答
0
投票

由于您要跳过默认绘图,因此您不妨在

pDC->DrawText(...)
之后绘制边框,无论您想要什么颜色/形状。

© www.soinside.com 2019 - 2024. All rights reserved.