目前我编了一个采集波形图的程序,波形可以显示了,只是不知道如何保存显示的波形,我用的是Picture控件来显示波形,且设置的属性石Rectangle 黑色。显示波形的代码如下:
void CPCIDlg::Figure(int Dots,double Data[],int PictureID,COLORREF crColor,int Width)
{
int i;
CPoint StartPt,EndPt;
CDC *pDC;
CStatic* pTxt=(CStatic*)GetDlgItem(PictureID);
pDC=pTxt->GetDC();
CPen pen;
pen.CreatePen(PS_SOLID,Width,crColor);
pDC->SelectObject(&pen);
CRect rc;
pTxt->GetClientRect(&rc);
for(i=0;i<Dots;i++)
{
StartPt.x=(int)(rc.left+i*rc.Width()/Dots);
StartPt.y=(int)(rc.Height()/2+(rc.Height()/2*Data[i]*(-1)));
EndPt.x=(int)(rc.left+(i+1)*rc.Width()/Dots);
EndPt.y=(int)(rc.Height()/2+(rc.Height()/2*Data[i+1]*(-1)));
if(StartPt.y<rc.top || EndPt.y<rc.top) StartPt.y=EndPt.y=rc.top;
if(StartPt.y>rc.bottom || EndPt.y>rc.bottom) StartPt.y=EndPt.y=rc.bottom;
pDC->MoveTo(StartPt.x,StartPt.y);
pDC->LineTo(EndPt);
}
pen.DeleteObject();
pTxt->ReleaseDC(pDC);
}
void CPCIDlg::Figure(int Dots,double Data[],int PictureID,COLORREF crColor,int Width)
{
int i;
CPoint StartPt,EndPt;
CDC *pDC;
CStatic* pTxt=(CStatic*)GetDlgItem(PictureID);
pDC=pTxt->GetDC();
CPen pen;
pen.CreatePen(PS_SOLID,Width,crColor);
pDC->SelectObject(&pen);
CRect rc;
pTxt->GetClientRect(&rc);
for(i=0;i<Dots;i++)
{
StartPt.x=(int)(rc.left+i*rc.Width()/Dots);
StartPt.y=(int)(rc.Height()/2+(rc.Height()/2*Data[i]*(-1)));
EndPt.x=(int)(rc.left+(i+1)*rc.Width()/Dots);
EndPt.y=(int)(rc.Height()/2+(rc.Height()/2*Data[i+1]*(-1)));
if(StartPt.y<rc.top || EndPt.y<rc.top) StartPt.y=EndPt.y=rc.top;
if(StartPt.y>rc.bottom || EndPt.y>rc.bottom) StartPt.y=EndPt.y=rc.bottom;
pDC->MoveTo(StartPt.x,StartPt.y);
pDC->LineTo(EndPt);
}
pen.DeleteObject();
pTxt->ReleaseDC(pDC);
}
解决方案 »
- MFC 自设菜单问题
- 分割窗口大小被改变,应该捕获哪个事件?
- 急! 如何固定listctrl在对话框中的宽度?并且仅具有下滚动条?
- 谁能说说:用MFC类向导生成的应用程序各个类的作用,以及,消息映射到哪个类,是基于什么原则?
- 真恼火,一个既简单有复杂的算法问题,希望能得到帮助,谢了!!
- 考,今天面试。被一道题郁闷了。请那位帮忙解个答
- 问:如何快速定位满足一定条件的XML节点?
- 如果改变 Edit 控件的底色 ?
- 300分求教(另开贴增分):如何编程实现控制一个文件夹的访问?
- masterz,111222过来看看,BHO中判断网页下载完成的问题
- 我想在让我的MFC程序跟sqlserver的数据库链接,要怎么做
- 跪求vnc代码
创建一个兼容bitmap(和图一样大)
把bitmap 选入 memDC
memDC.BitBlt(0, 0, rc.Width(), rc.Height(), pDC, rc.left, rc.top, SRCCOPY);
把bitmap选出来。
保存为文件。