void CDBDlg::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
CString str;
switch(lplvcd->nmcd.dwDrawStage)
{
int iRow;
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT:
*pResult = CDRF_DODEFAULT;
iRow= lplvcd->nmcd.dwItemSpec;
str=m_Grid.GetItemText( iRow, 0 );
if(str=="TT")
{
// lplvcd->clrTextBk = RGB(255, 255, 255);
lplvcd->clrText = RGB(255, 0, 0);
*pResult = CDRF_NEWFONT;
}
break;
default:
*pResult = CDRF_DODEFAULT;
}
}
以上代码是没有问题的,但是我把CString str;这个定义放在switch语句大括号里面就会报error C2360: initialization of 'str' is skipped by 'case' label错误,但是为什么int iRow在switch大括号定义里却不会被块语句封杀?