大家好,请教一个在对话框窗口内部动态的画连续曲线的问题!!!
void CProcessDlg::DrawXOY() //自定义的函数
{
long x,y;
CPen myPen;
myPen.CreatePen(PS_COSMETIC,1,RGB(0,255,0));
CWnd*pWnd=GetDlgItem(IDC_XOYKUANG);
CDC*pControlDC=pWnd->GetDC();
pControlDC->SelectObject(&myPen);
pControlDC->MoveTo(pt); //pt是CPoint类,初始化为坐标的原点(15,24)
x=15+(nPosX/800); //nPoxX,nPosY是坐标值,转化为屏幕的象素点
y=20+(nPosY/800);
pControlDC->LineTo(x,y);
pt.x=x;
pt.y=y;
pWnd->ReleaseDC(pControlDC);
}
void CProcessDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
DrawXOY();
CDialog::OnTimer(nIDEvent);
}
注:在对话框内的坐标系是用OnPaint()画的
不知道什么原因会出现以下问题:
(1):画出来的图总有一些多余的线段(垂线和水平线)
(2):在对话框内部有一按钮,点击它会弹出一个对话框(是一个充满整个屏幕的对话框)这个对话框也是用来动态的画原来的曲线,只不过是比原来的对话框放大了比例,两个对话框画出来的曲线要同步,且相互不影响(即当窗口改变尺寸或移走刚覆盖它的窗口,会触发WM_PAINT消息,引起重画,会把原来画的曲线覆盖)
由于才刚学编程,这两个问题不知道怎样解决,请大家帮帮忙,谢谢!!!
如果有这方面的例程,请发到我的邮箱:tpyanzhu@163.com 谢谢!!!