在CListCtrl中更改特定项目颜色?

时间:2015-05-18 20:02:32

标签: c++ visual-studio-2013 mfc

我想将所有目标名称的颜色更改为红色包含在Name1,Name2和Name3中。并且每个测试名称都为黑色或其默认颜色。 lvColumn类型是LVCOLUMN。 任何想法如何做到这一点?................

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");

1 个答案:

答案 0 :(得分:1)

您需要处理/A消息并更改该处理程序中的文本颜色。