欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

初学vc++遇到的有关问题

更新时间: 2014-01-05 04:39:55 责任编辑: Author_N1

 

初学VC++遇到的问题
我已经从文件中读取了两列数据分别存放在数组a[1000]和b[1000]中(数据量比较大),a数组中的值表示横坐标,b数组中的值表示纵坐标,在VC++6.0中该怎么实现a和b表示的点画成曲线,另外在MFC中,我想点击画图按钮,能将画出的图形显示在对话框的某块区域。求高手指教!
--参考方法--
       CWnd *pwnd=GetDlgItem(IDC_PICTURE);//作图区域,假设你在IDC_PICTURE上画
CDC *dc=pwnd->GetDC();
CPen penBlack(PS_DASH,2,RGB(0,0,0)); //黑色
dc->SelectObject(&penBlack);//选择画笔

for(int i=0;i<1000-1;i++)
{
    dc->MoveTo(a[i],b[i]);     
    dc->LineTo(a[i+1],b[i+1]);
}

ReleaseDC(dc);

--参考方法--
引用:
C/C++ code?123456789101112       CWnd *pwnd=GetDlgItem(IDC_PICTURE);//作图区域,假设你在IDC_PICTURE上画    CDC *dc=pwnd->GetDC();    CPen penBlack(PS_DASH,2,RGB(0,0,0)); //黑色    dc->SelectObject(&am……


+1

至于你说的点画图按钮就画的功能可以在类中加一个bool isPaint;变量。
构造函数初始化的时候 isPaint = false;
将楼上的代码改为:
if(isPaint)
{
 CWnd *pwnd=GetDlgItem(IDC_PICTURE);//作图区域,假设你在IDC_PICTURE上画
    CDC *dc=pwnd->GetDC();
    CPen penBlack(PS_DASH,2,RGB(0,0,0)); //黑色
    dc->SelectObject(&penBlack);//选择画笔
 
    for(int i=0;i<1000-1;i++)
    {
        dc->MoveTo(a[i],b[i]);     
        dc->LineTo(a[i+1],b[i+1]);
    }
 
    ReleaseDC(dc);
}

然后在按钮的响应下面加上:
isPaint = true;
repaint();  //重画一下窗口

这样就可以了
--参考方法--
VC中窗口重绘是要重载OnDraw函数的吧,你找本VC的书看下二维绘图部分。
--参考方法--
学习了,待会试试~~~~~~~~~~~~~~~~~~~~~~
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 04:39:55
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/33562/
本文WWW.DOC100.NET DOC100.NET版权所有。