2 dx231 DX231 于 2016.04.11 10:33 提问

MFC编程错误,急待解决 谢谢

void CEx_DrawView::DrawScore(CDC *pDC,float*fScore,int nNum)//fScore是成绩数组指针 nNum是学生人数
{
int nScoreNum[]={0,0,0,0,0};
for(int i=0;i<nNum;i++)
{
int nSeg=(int)(fScore[i])/10;
if(nSeg<6) nSeg=5;
if(nSeg==10) nSeg=9;
nScoreNum[nSeg-5]++;
}
int nSegNum=sizeof(nScoreNum)/sizeof(int);
int nNumMax=nScoreNum[0];
for(i=1;i<nSegNum;i++)
{
if(nNumMax<nScoreNum[i]) nNumMax=nScoreNum[i];

}
CRect rc;
GetClientRect(rc);
rc.DeflateRect (40,40);
int nSegWidth=rc.Width()/nSegNum;
int nSegHeight=rc.Height()/nNumMax;
COLORREF crSeg=RGB(0,0,192);
CBrush brush1(HS_FDIAGONAL,crSeg);
CBrush brush2(HS_BDIAGONAL,crSeg);
Cpen pen(PS_INSIDEFRAME,2,crSeg);
CBrush*oldBrush=pDC->SelectObject(&brush1);
CPen*oldPen=pDC->SelectObject(&pen);
CRect rcSeg(rc);
rcSeg.right =rcSeg.left +nSegWidth;
CString strSeg[]={"<60","60-70","70-80","80-90",">=90"};
CRect rcStr;
for(i=1;i<nSegNum;i++)
{
    if(i%2)
        pDC->SelectObject (&brush2);
    else
        pDC->SelectObject (&brush1);
    rcSeg.top =rcSeg.bottom-nScoreNum[i]*nSegHeight-2;
    pDC->Rectangle (rcSeg);
    if(nScoreNum[i]>0)
    {
        CString str;
        str.Format ("%d人",nScoreNum[i]);
        pDC->DrawText(str,rcSeg,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
    }
    rcStr=rcSeg;
    rcStr.top=rcStr.bottom+2;
    rcStr.bottom+=20;
    pDC->DrawText(strSeg[i],rcStr,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
    rcSeg.OffsetRect (nSegWidth,0);
}
pDC->SelectObject(oldBrush);
pDC->SelectObject(oldpen);

}
报错说 :\Ex_Draw\Ex_DrawView.cpp(112) : error C2511: 'DrawScore' : overloaded member function 'void (class CDC *,float *,int)' not found in 'CEx_DrawView'
e:\ex_draw\ex_drawview.h(13) : see declaration of 'CEx_DrawView' 不知道怎么改了 求助高手~谢谢!

4个回答

qq_26714389
qq_26714389   2016.04.11 10:36

void (class CDC *,float *,int)' 调用的成员函数超载,要么是没有与之相匹配的重载函数要么是调用的函数参数给错

qq_26714389
qq_26714389 回复DX231: 查看自己的调用的函数的参数列表,看看是不是给的数据类型不匹配
一年多之前 回复
DX231
DX231 那请问我该如何改呢?才学的。。不会
一年多之前 回复
qq423399099
qq423399099   Ds   Rxr 2016.04.11 11:00

你看看这个函数的定义和声明是否一致,就是说你在头文件中声明的这个函数其参数个数、类型和顺序是否和cpp中的实现一致。

CSDNXIAOD
CSDNXIAOD   2016.04.11 12:04

MFC编程中常见错误及如何解决
MFC编程错误集
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

VisualEleven
VisualEleven   Ds   Rxr 2016.04.14 17:29

你自己看一下你h文件中类中定义的函数原型是这个样子的吗?
void DrawScore(CDC *pDC,float*fScore,int nNum);

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!