📄 1.cpp
字号:
#include "1.h"
#include "stdafx.h"
void DrawScore(CDC *pDC,float *fScore,int 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=0;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=0;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);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -