//
//*******画坐标图*******
//
CRect rect(250,300,600,600);
// GetClientRect(&rect);
int nxLength=rect.Width();
int nyLength=rect.Height();
int nxDivisionNumber = 7;
int nyDivisionNumber = 6;
int nMeshLength;
CString str;
int i;
CDC* pDC = this->GetDC();
// pDC->Rectangle(0,0,nxLength,nyLength);
CPen* pPenRed = new CPen; //创建画笔对象
pPenRed->CreatePen(PS_SOLID, 1, RGB(255,0,0)); //红色画笔
CPen* pPenGreen = new CPen; //创建画笔对象
pPenGreen->CreatePen(PS_SOLID, 1, RGB(0,255,0));//绿色画笔
CPen* pPenBlue = new CPen; //创建画笔对象
pPenBlue->CreatePen(PS_DOT, 1, RGB(0,0,255)); //蓝色画笔
CPen* pPenBlack = new CPen; //创建画笔对象
pPenBlack->CreatePen(PS_SOLID, 1, RGB(0,0,0)); //黑色画笔
//选中黑色画笔,并保存当前画笔
CGdiObject* pOldPen = pDC->SelectObject(pPenBlack);
pDC->MoveTo(rect.left,rect.top); //绘制坐标轴
pDC->LineTo(rect.left,rect.bottom); //垂直轴
pDC->LineTo(rect.right,rect.bottom); //水平轴
//横坐标箭头
pDC->MoveTo(rect.right,rect.bottom);
pDC->LineTo(rect.right-10,rect.bottom-3);
pDC->LineTo(rect.right-10,rect.bottom+3);
pDC->LineTo(rect.right,rect.bottom);
//纵坐标箭头
pDC->MoveTo(rect.left ,rect.top);
pDC->LineTo(rect.left-3,rect.top+10);
pDC->LineTo(rect.left+3,rect.top+10);
pDC->LineTo(rect.left ,rect.top);
pDC->SetBkMode(TRANSPARENT); //设置背景透明
//横坐标数字
nMeshLength = (nxLength-40)/(nxDivisionNumber+1);
for (i=1; i<nxDivisionNumber+1; i++){
str.Format("%d",i);
pDC->TextOut(rect.left-5+i*nMeshLength, rect.bottom+5, str);
}
//横坐标标识
str.Format("数据序列");
pDC->TextOut(rect.left-5+i*nMeshLength,rect.bottom+5,str);
//纵坐标数字
nMeshLength = (nyLength-40)/(nyDivisionNumber+1);
for (i=0; i<nyDivisionNumber+1; i++){
str.Format("%1.1f",(float)(i*0.5));
pDC->TextOut(rect.left-30, rect.bottom-i*nMeshLength, str);
}
//纵坐标标识
str.Format("电压(V)");
pDC->TextOut(rect.left+10,rect.top-15,str);
//网格线
pDC->SelectObject(pPenBlue);
nMeshLength = (nxLength-40)/(nxDivisionNumber+1);
for (i=1; i<nxDivisionNumber+2; i++){
pDC->MoveTo(rect.left+i*nMeshLength,rect.bottom);
pDC->LineTo(rect.left+i*nMeshLength,rect.top);
}
nMeshLength = (nyLength-40)/(nyDivisionNumber+1);
for (i=1; i<nyDivisionNumber+2; i++){
pDC->MoveTo(rect.left , rect.bottom-i*nMeshLength);
pDC->LineTo(rect.right, rect.bottom-i*nMeshLength);
}
//恢复以前的画笔
pDC->SelectObject(pOldPen);
delete pPenRed;
delete pPenGreen;
delete pPenBlue;
delete pPenBlack;
//*******画坐标图*******
//
CRect rect(250,300,600,600);
// GetClientRect(&rect);
int nxLength=rect.Width();
int nyLength=rect.Height();
int nxDivisionNumber = 7;
int nyDivisionNumber = 6;
int nMeshLength;
CString str;
int i;
CDC* pDC = this->GetDC();
// pDC->Rectangle(0,0,nxLength,nyLength);
CPen* pPenRed = new CPen; //创建画笔对象
pPenRed->CreatePen(PS_SOLID, 1, RGB(255,0,0)); //红色画笔
CPen* pPenGreen = new CPen; //创建画笔对象
pPenGreen->CreatePen(PS_SOLID, 1, RGB(0,255,0));//绿色画笔
CPen* pPenBlue = new CPen; //创建画笔对象
pPenBlue->CreatePen(PS_DOT, 1, RGB(0,0,255)); //蓝色画笔
CPen* pPenBlack = new CPen; //创建画笔对象
pPenBlack->CreatePen(PS_SOLID, 1, RGB(0,0,0)); //黑色画笔
//选中黑色画笔,并保存当前画笔
CGdiObject* pOldPen = pDC->SelectObject(pPenBlack);
pDC->MoveTo(rect.left,rect.top); //绘制坐标轴
pDC->LineTo(rect.left,rect.bottom); //垂直轴
pDC->LineTo(rect.right,rect.bottom); //水平轴
//横坐标箭头
pDC->MoveTo(rect.right,rect.bottom);
pDC->LineTo(rect.right-10,rect.bottom-3);
pDC->LineTo(rect.right-10,rect.bottom+3);
pDC->LineTo(rect.right,rect.bottom);
//纵坐标箭头
pDC->MoveTo(rect.left ,rect.top);
pDC->LineTo(rect.left-3,rect.top+10);
pDC->LineTo(rect.left+3,rect.top+10);
pDC->LineTo(rect.left ,rect.top);
pDC->SetBkMode(TRANSPARENT); //设置背景透明
//横坐标数字
nMeshLength = (nxLength-40)/(nxDivisionNumber+1);
for (i=1; i<nxDivisionNumber+1; i++){
str.Format("%d",i);
pDC->TextOut(rect.left-5+i*nMeshLength, rect.bottom+5, str);
}
//横坐标标识
str.Format("数据序列");
pDC->TextOut(rect.left-5+i*nMeshLength,rect.bottom+5,str);
//纵坐标数字
nMeshLength = (nyLength-40)/(nyDivisionNumber+1);
for (i=0; i<nyDivisionNumber+1; i++){
str.Format("%1.1f",(float)(i*0.5));
pDC->TextOut(rect.left-30, rect.bottom-i*nMeshLength, str);
}
//纵坐标标识
str.Format("电压(V)");
pDC->TextOut(rect.left+10,rect.top-15,str);
//网格线
pDC->SelectObject(pPenBlue);
nMeshLength = (nxLength-40)/(nxDivisionNumber+1);
for (i=1; i<nxDivisionNumber+2; i++){
pDC->MoveTo(rect.left+i*nMeshLength,rect.bottom);
pDC->LineTo(rect.left+i*nMeshLength,rect.top);
}
nMeshLength = (nyLength-40)/(nyDivisionNumber+1);
for (i=1; i<nyDivisionNumber+2; i++){
pDC->MoveTo(rect.left , rect.bottom-i*nMeshLength);
pDC->LineTo(rect.right, rect.bottom-i*nMeshLength);
}
//恢复以前的画笔
pDC->SelectObject(pOldPen);
delete pPenRed;
delete pPenGreen;
delete pPenBlue;
delete pPenBlack;