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' 不知道怎么改了 求助高手~谢谢!