初学VC++遇到的有关问题
初学VC++遇到的问题我已经从文件中读取了两列数据分别存放在数组a[1000]和b[1000]中(数据量比较大),a数组
初学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);
[解决办法]+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的书看下二维绘图部分。
[解决办法]学习了,待会试试~~~~~~~~~~~~~~~~~~~~~~