展开全部
CPen myPen;
CPen myPen1;
CPen *pOldPen;
//选用黑色画坐标系
pdc->FillSolidRect(rect, RGB(0, 0, 0)); //对矩形框填充颜色
pdc->SetBkMode(TRANSPARENT);
int h= rect.Height();
int w= rect.Width();
myPen.CreatePen(PS_SOLID,1,RGB(255,0,0)); //创建一个红色的画笔
myPen1.CreatePen(PS_DOT,1,RGB(255,255,255)); //创建一个红色的画笔
pOldPen=pdc->SelectObject(&myPen); //选择这个新画笔
pdc->SetTextColor(RGB(255, 255, 255)); //设置文字的颜色
int nY2BottomLen = (int)(rect.bottom-h*0.1); //原点
int nX2LeftLen = (int)(rect.left+w*0.05); //
int nAxW = (int)(w*(1-0.10)); //坐标系的宽度
int nAxH = (int)(h*(1-0.10)); //坐标系的高度
int fw = (int)(nAxW - w*0.02); //坐标系的实际宽度,小于箭头的线
int fh = (int)(nAxH - h*0.125); //坐标系的实际高度
//画X坐标
//PLineToP(nX2LeftLen, nY2BottomLen, nAxW+nX2LeftLen, nY2BottomLen, pdc); //画X轴的那条横线
PLineToP(nX2LeftLen, nY2BottomLen, nAxW+nX2LeftLen, nY2BottomLen, pdc); //画X轴的那条横线
//PLineToP(nAxW+nX2LeftLen, nY2BottomLen, nAxW+nX2LeftLen-15, nY2BottomLen-5, pdc);//画X轴的箭头的一端
PLineToP(nAxW+nX2LeftLen, nY2BottomLen, nAxW+nX2LeftLen-10, nY2BottomLen -3, pdc);//画X轴的箭头的一端
//PLineToP(nAxW+nX2LeftLen, nY2BottomLen, nAxW+nX2LeftLen-15, nY2BottomLen+5, pdc);//画X轴的箭头的另一端
PLineToP(nAxW+nX2LeftLen, nY2BottomLen, nAxW+nX2LeftLen-10, nY2BottomLen+3, pdc);//画X轴的箭头的另一端
//画Y坐标
PLineToP(nX2LeftLen, nY2BottomLen, nX2LeftLen, nY2BottomLen-nAxH, pdc); //画Y轴的那条横线
PLineToP(nX2LeftLen, nY2BottomLen-nAxH, nX2LeftLen-3, nY2BottomLen-nAxH+10, pdc);//画Y轴的箭头的一端
PLineToP(nX2LeftLen, nY2BottomLen-nAxH, nX2LeftLen+3, nY2BottomLen-nAxH+10, pdc);//画Y轴的箭头的另一端
//写原点
pdc->SetTextColor(RGB(255,0,0));
// pdc->TextOut(nX2LeftLen-20, (int)nY2BottomLen - fh/2 - 8, "0");
//X坐标说明
pdc->TextOut(nAxW+nX2LeftLen,(nY2BottomLen+3) , "X(/h)");
//Y坐标说明
pdc->TextOut(nX2LeftLen-45, nY2BottomLen-nAxH+2, "Y(/ns)");
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询