求大神!!!关于VC画坐标系问题!! 有哪位大神帮忙用VC画直角坐标系,求源代码!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 VC画直角坐标系-----------------就是画两条线movetolineto CWnd *pWnd = CWnd::FromHandle(GetSafeHwnd()); CString str; //强制更新绘图, 不可少, 否则绘图会出错 //pWnd->Invalidate(); //使static控件的区域无效 //pWnd->UpdateWindow();//更新窗口, 此时才真正向系统发送重绘消息 CDC *pDC = pWnd->GetDC(); //获取控件的CDC指针 pDC->Rectangle(0, 390, 700, 0); //画一个矩形框 CPen *pPenRed = new CPen(); //创建画笔对象 pPenRed ->CreatePen(PS_SOLID, 1, RGB(128, 128, 128)); //黑色画笔 CPen *pPen = NULL; //选中当前红色画笔,并保存以前的画笔 CGdiObject *pOldPen = pDC ->SelectObject(pPenRed); pDC ->MoveTo(20, 20); //绘制坐标轴 pDC ->LineTo(20, 360); //竖起轴 pDC ->LineTo(690, 360); //水平轴 //写X轴刻度值 for(int i = 0; i <= 25; i ++) { str.Format(_T("%d"), i); pDC ->TextOut(17 + 25 * i, 365, str); //绘制X轴刻度 pDC ->MoveTo(i * 25 + 20, 360); pDC ->LineTo(i * 25 + 20, 355); } pDC ->TextOut(680,365,_T("t/s")); //写Y轴刻度值 for(int i = 1; i <= 10; i ++) { str.Format(_T("%d"), i); pDC ->TextOut(2, 360 - 30 * i - 5, str); //绘制Y轴刻度 pDC ->MoveTo(25, 360 - 30 * i); pDC ->LineTo(20, 360 - 30 * i); } //绘制X箭头 pDC ->MoveTo(680, 357); pDC ->LineTo(690, 360); pDC ->LineTo(680, 363); //绘制Y箭头 pDC ->MoveTo(17, 30); pDC ->LineTo(20, 20); //绘制左边箭头 pDC ->LineTo(23, 30); //绘制右边箭头 pDC ->SelectObject(pOldPen);//恢复以前的画笔 delete pPenRed; if(pPen != NULL) delete pPen; ReleaseDC(pDC); 基本上moveto和lineto就能搞定所有的,另外对应的Pen颜色可以自己设置下。 MFC 添加ACCESS数据库内容 结果出不来 窗口显示的问题 实在是不会写了,请帮下忙吧,先谢谢了 VC的智能提示信息是保存在什么文件里的? 可能是网络问题 如何才能使基类的消息函数执行 关于vfw视频卡捕捉的问题(很怪) 初学指针,乱七八糟,散分100求教明师指点 如何获得毫秒级时间 ★ ★ ★ 怎样将"abc测试汉字def"用WM_IME_CHAR或其他方式写到另一个程序的光标处? 求助,关于VC中MessageBox的问题~~ error C2146: 语法错误 : 缺少“;”(在标识符“filter”的前面)
moveto
lineto
CString str; //强制更新绘图, 不可少, 否则绘图会出错
//pWnd->Invalidate(); //使static控件的区域无效
//pWnd->UpdateWindow();//更新窗口, 此时才真正向系统发送重绘消息
CDC *pDC = pWnd->GetDC(); //获取控件的CDC指针
pDC->Rectangle(0, 390, 700, 0); //画一个矩形框
CPen *pPenRed = new CPen(); //创建画笔对象
pPenRed ->CreatePen(PS_SOLID, 1, RGB(128, 128, 128)); //黑色画笔
CPen *pPen = NULL; //选中当前红色画笔,并保存以前的画笔
CGdiObject *pOldPen = pDC ->SelectObject(pPenRed);
pDC ->MoveTo(20, 20); //绘制坐标轴
pDC ->LineTo(20, 360); //竖起轴
pDC ->LineTo(690, 360); //水平轴
//写X轴刻度值
for(int i = 0; i <= 25; i ++)
{
str.Format(_T("%d"), i);
pDC ->TextOut(17 + 25 * i, 365, str);
//绘制X轴刻度
pDC ->MoveTo(i * 25 + 20, 360);
pDC ->LineTo(i * 25 + 20, 355);
}
pDC ->TextOut(680,365,_T("t/s"));
//写Y轴刻度值
for(int i = 1; i <= 10; i ++)
{
str.Format(_T("%d"), i);
pDC ->TextOut(2, 360 - 30 * i - 5, str);
//绘制Y轴刻度
pDC ->MoveTo(25, 360 - 30 * i);
pDC ->LineTo(20, 360 - 30 * i);
}
//绘制X箭头
pDC ->MoveTo(680, 357);
pDC ->LineTo(690, 360);
pDC ->LineTo(680, 363);
//绘制Y箭头
pDC ->MoveTo(17, 30);
pDC ->LineTo(20, 20); //绘制左边箭头
pDC ->LineTo(23, 30); //绘制右边箭头
pDC ->SelectObject(pOldPen);//恢复以前的画笔
delete pPenRed;
if(pPen != NULL)
delete pPen;
ReleaseDC(pDC);