本该有效的一段代码,现在无效
void CConfigStorageAssignListCtrl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
if ( CDDS_PREPAINT == lplvcd->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if ( CDDS_ITEMPREPAINT == lplvcd->nmcd.dwDrawStage )
{
if (GetItemText(lplvcd->nmcd.dwItemSpec, 1) == "Default")
{
lplvcd->clrText = RGB(128,255,255);
lplvcd->clrTextBk = RGB(255,255,255);
}
// Tell Windows to paint the control itself.
*pResult = CDRF_DODEFAULT;
}
}
断点调试进入
lplvcd->clrText = RGB(128,255,255);
lplvcd->clrTextBk = RGB(255,255,255);
但是没有效果
是什么原因呢
void CConfigStorageAssignListCtrl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
if ( CDDS_PREPAINT == lplvcd->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if ( CDDS_ITEMPREPAINT == lplvcd->nmcd.dwDrawStage )
{
if (GetItemText(lplvcd->nmcd.dwItemSpec, 1) == "Default")
{
lplvcd->clrText = RGB(128,255,255);
lplvcd->clrTextBk = RGB(255,255,255);
}
// Tell Windows to paint the control itself.
*pResult = CDRF_DODEFAULT;
}
}
断点调试进入
lplvcd->clrText = RGB(128,255,255);
lplvcd->clrTextBk = RGB(255,255,255);
但是没有效果
是什么原因呢
{
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
if ( CDDS_PREPAINT == lplvcd->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if ( CDDS_ITEMPREPAINT == lplvcd->nmcd.dwDrawStage )
{
if (GetItemText(lplvcd->nmcd.dwItemSpec, 1) == "Default")
{
lplvcd->clrText = RGB(128,255,255);
lplvcd->clrTextBk = RGB(255,255,255);
}
// Tell Windows to paint the control itself.
else
*pResult = CDRF_DODEFAULT;
}
} 在*pResult = CDRF_DODEFAULT;前加一个else
原先哪个代码,我在单独的ListCtrl就可以的
只是现在我这个ListCtrl不行,不知原因在哪
{
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
if ( CDDS_PREPAINT == lplvcd->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if ( CDDS_ITEMPREPAINT == lplvcd->nmcd.dwDrawStage )
{
if (GetItemText(lplvcd->nmcd.dwItemSpec, 1) == "Default")
{
lplvcd->clrText = RGB(128,255,255);
lplvcd->clrTextBk = RGB(255,255,255);
}
// Tell Windows to paint the control itself.
else
*pResult = CDRF_DODEFAULT;
}
} 在*pResult = CDRF_DODEFAULT;前加一个else
{
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
if ( CDDS_PREPAINT == lplvcd->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if ( CDDS_ITEMPREPAINT == lplvcd->nmcd.dwDrawStage )
{
if (CListCtrl::GetItemText(lplvcd->nmcd.dwItemSpec, 1) == "Default")
{
lplvcd->clrText = RGB(128,255,255);
lplvcd->clrTextBk = RGB(255,255,255);
}
// Tell Windows to paint the control itself.
*pResult = CDRF_NEWFONT; //
}
else
{
*pResult = CDRF_DODEFAULT;
}
}