如何改变列表控件(ListCtrl)中列表项的颜色?

时间:2022-10-05 20:13:52
在列表控件以 report 方式的时侯,添加项如何改变其颜色???

13 个解决方案

#1


CListCtrl::SetTextColor

CListCtrl::SetTextBkColor

CListCtrl::SetBkColor

#2


呵呵~~~~~同意楼上的

#3


设置文本色:
CListCtrl::SetTextColor
设置文本背景:
CListCtrl::SetTextBkColor
设置LISTCTRL的背景
CListCtrl::SetBkColor

#4


比较彻底的方法是用customdraw或者ownerdraw,可以实现隔行隔色显示。

#5


CListCtrl m_ajxx_ListCtrl;
m_ajxx_ListCtrl.SetBkColor (RGB(128,128,255));//背景色
m_ajxx_ListCtrl.SetTextColor(RGB(0,255,0));//文本色
m_ajxx_ListCtrl.SetTextBkColor(RGB(128,128,255));//文本背景色
ListView_SetExtendedListViewStyle(m_ajxx_ListCtrl.m_hWnd ,LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);//画线&整行选中

#6


thanx, 我要的是每行显示不同的颜色,而且我现在用的列表视图,有什么好办法吗?

#7


//overide OnCustomDraw(NMHDR *pHdr, LRESULT *pResult) function.
void JCListCtrl::OnCustomDraw(NMHDR *pHdr, LRESULT *pResult)
{
    LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pHdr;

switch(lplvcd->nmcd.dwDrawStage)
    {
    case CDDS_PREPAINT:
    // Request prepaint notifications for each item.
    *pResult = CDRF_NOTIFYITEMDRAW;
    break;
case CDDS_ITEMPREPAINT: // Requested notification
    if(lplvcd->nmcd.dwItemSpec % 2)
    {
            lplvcd->clrText = RGB(0, 0, 0);
            lplvcd->clrTextBk = RGB( 245, 210, 10 );
    }
    *pResult = CDRF_DODEFAULT;
    break;
    }
}

#8


被楼上写了

#9


我也试试

#10


gz

#11


学习。

#12


还能不能将视图中的列表控件子分类(subclass) ??

#13


关注

#1


CListCtrl::SetTextColor

CListCtrl::SetTextBkColor

CListCtrl::SetBkColor

#2


呵呵~~~~~同意楼上的

#3


设置文本色:
CListCtrl::SetTextColor
设置文本背景:
CListCtrl::SetTextBkColor
设置LISTCTRL的背景
CListCtrl::SetBkColor

#4


比较彻底的方法是用customdraw或者ownerdraw,可以实现隔行隔色显示。

#5


CListCtrl m_ajxx_ListCtrl;
m_ajxx_ListCtrl.SetBkColor (RGB(128,128,255));//背景色
m_ajxx_ListCtrl.SetTextColor(RGB(0,255,0));//文本色
m_ajxx_ListCtrl.SetTextBkColor(RGB(128,128,255));//文本背景色
ListView_SetExtendedListViewStyle(m_ajxx_ListCtrl.m_hWnd ,LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);//画线&整行选中

#6


thanx, 我要的是每行显示不同的颜色,而且我现在用的列表视图,有什么好办法吗?

#7


//overide OnCustomDraw(NMHDR *pHdr, LRESULT *pResult) function.
void JCListCtrl::OnCustomDraw(NMHDR *pHdr, LRESULT *pResult)
{
    LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pHdr;

switch(lplvcd->nmcd.dwDrawStage)
    {
    case CDDS_PREPAINT:
    // Request prepaint notifications for each item.
    *pResult = CDRF_NOTIFYITEMDRAW;
    break;
case CDDS_ITEMPREPAINT: // Requested notification
    if(lplvcd->nmcd.dwItemSpec % 2)
    {
            lplvcd->clrText = RGB(0, 0, 0);
            lplvcd->clrTextBk = RGB( 245, 210, 10 );
    }
    *pResult = CDRF_DODEFAULT;
    break;
    }
}

#8


被楼上写了

#9


我也试试

#10


gz

#11


学习。

#12


还能不能将视图中的列表控件子分类(subclass) ??

#13


关注