c++ - CListCtrl 报 TableView 中没有颜色

标签 c++ visual-studio-2010 mfc

我之前已经这样做过,但令我惊讶的是 CListCtrl 不会以颜色显示文本。我在对话框上有 ListView 控件。我正在使用 VS2010,是否还缺少其他东西?

void CGameView::OnCustomdrawListBatsmen(NMHDR *pNMHDR, LRESULT *pResult)
{
    //LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);

    LPNMLVCUSTOMDRAW pNMLVCD = reinterpret_cast<LPNMLVCUSTOMDRAW>(pNMHDR);
    *pResult = CDRF_DODEFAULT;

    switch( pNMLVCD->nmcd.dwDrawStage )
    {
    case CDDS_PREPAINT:
        *pResult = CDRF_NOTIFYITEMDRAW;
        break;

    case CDDS_ITEMPREPAINT:
        pNMLVCD->clrTextBk = RGB(255,0,0);
        pNMLVCD->clrText = RGB(255, 0, 0 );
        *pResult = CDRF_NOTIFYSUBITEMDRAW;
        break;

    case CDDS_ITEMPREPAINT | CDDS_SUBITEM:
    //  if( pNMLVCD->iSubItem == 1 )
            pNMLVCD->clrTextBk = RGB(0,255,0);
            pNMLVCD->clrText = RGB(255, 0, 0 );
        break;
    }
    *pResult = 0;
}

当我调试它时,控件甚至从未通过第一种情况!我不知道是那个吗?我需要在资源 View 中设置列表控件属性吗?

最佳答案

我解决了这个问题,这是最后一行:

 *pResult = 0;

需要将其删除,因为它正在重置 switch case 中设置的任何值。

关于c++ - CListCtrl 报 TableView 中没有颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24642207/

相关文章:

c++ - Cloud Files API 支持哪些 Windows 版本?

c++ - C++/MFC 中枚举网络共享目录

c++ - 使用 CString 参数调用 UpdateAllViews

c++ - 这是 MSVC 2010 中的错误还是我做错了什么?

c# - 在 visual studio 10 中创 build 置

c++ - 如何在应用程序一开始就破坏堆栈

c++ - c++程序中的数据库连接检查

c++ - 在编译时检查模板参数是否是一种字符串

c++ - 这些重载是否必要?

visual-studio-2010 - Visual Studio 2010 中的负载测试