大家好,请教一个在对话框窗口内部动态的画连续曲线的问题!!!

tpliulang 2003-08-21 10:06:28
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 谢谢!!!
...全文
27 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
piperliu 2003-09-11
  • 打赏
  • 举报
回复
是否要用兼容位图来做
tpliulang 2003-08-22
  • 打赏
  • 举报
回复
各位高手,请大家帮帮忙,谢了!!!

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧