Ewenyee
Ewenyee
采纳率50%
2016-04-10 14:44 阅读 1.6k

块语句里定义的问题,error C2360l错误

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大括号定义里却不会被块语句封杀?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-04-10 14:50

    CString str;
    ->
    CString str="";

    点赞 评论 复制链接分享
  • Ewenyee Ewenyee 2016-04-10 14:59

    大侠,能说的更详细一点吗?

    点赞 评论 复制链接分享

相关推荐