Mike
Mike

Reputation: 94

Change Specific Items Color in CListCtrl?

I want to change the color of all Target Name to red Include in Name1, Name2, and Name3. And every test name to black or its default color. lvColumn type is LVCOLUMN. Any Idea how to do that?................

lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
    lvColumn.fmt = LVCFMT_LEFT;
    lvColumn.cx = 120;
    lvColumn.pszText = "Name1";
    m_szList.InsertColumn(0, &lvColumn);

    lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
    lvColumn.fmt = LVCFMT_LEFT;
    lvColumn.cx = 75;
    lvColumn.pszText = "Name2";
    m_szList.InsertColumn(1, &lvColumn);

    lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
    lvColumn.fmt = LVCFMT_LEFT;
    lvColumn.cx = 80;
    lvColumn.pszText = "Name3";
    m_szList.InsertColumn(2, &lvColumn);


    LVITEM lvItem;
    int nItem;

    lvItem.mask = LVIF_TEXT;
    lvItem.iItem = 0;
    lvItem.iSubItem = 0;
    lvItem.pszText = "Test1";
    nItem = m_szList.InsertItem(&lvItem);

    m_szList.SetItemText(nItem, 1, "Target");
    m_szList.SetItemText(nItem, 2, "Test3");

    lvItem.mask = LVIF_TEXT;
    lvItem.iItem = 1;
    lvItem.iSubItem = 0;
    lvItem.pszText = "Test2";
    nItem = m_szList.InsertItem(&lvItem);

    m_szList.SetItemText(nItem, 1, "Test1");
    m_szList.SetItemText(nItem, 2, "Target");

    lvItem.mask = LVIF_TEXT;
    lvItem.iItem = 2;
    lvItem.iSubItem = 0;
    lvItem.pszText = "Target";
    nItem = m_szList.InsertItem(&lvItem);

    m_szList.SetItemText(nItem, 1, "Test1");
    m_szList.SetItemText(nItem, 2, "Test2");

Upvotes: 0

Views: 1362

Answers (1)

Andrew Komiagin
Andrew Komiagin

Reputation: 6556

You need to handle the NM_CUSTOMDRAW message and change the text color in that handler.

Upvotes: 1

Related Questions