onPaint 函数里面 调用一个画图函数,导致界面不断地刷新

SHAOIT 2012-07-25 11:19:13
onpaint的函数里面,已经初始化坐标变换,窗体大小等等,我定义的画图函数就是画一个界面的横纵坐标刻度,所以我要在onpaint的函数里面,调用pDC 变量,但是一直进行死循环,不断刷新。。。。
望各位大神出手。。。我的画图函数必须要放在onpaint函数里面,怎么解决这个问题?
...全文
321 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
SHAOIT 2012-07-27
  • 打赏
  • 举报
回复
坐标已经画出来,用了一次for循环,选定3断点,现在小系统终于搞完了。。。不过还是谢谢大家哈
youngwolf 2012-07-26
  • 打赏
  • 举报
回复
建议用ST_Curve控件
www.st-curve.cn
一桶姜山 2012-07-26
  • 打赏
  • 举报
回复
把你的画图函数贴出来看下
傻X 2012-07-26
  • 打赏
  • 举报
回复
一样能拿到pDC的,不用纠结于OnPaint里面。
CPaintdc(this);
CDC * dc = GetDC();

这样你控制起来可能方便许多了
wltg2001 2012-07-26
  • 打赏
  • 举报
回复
画图函数一般是要放在OnPaint里面的,不过我觉得这个不是原因。
启禾呈 2012-07-26
  • 打赏
  • 举报
回复
加标志位?你要画的时候置为TRUE,在Paint函数中画完就置为FALSE。它会自己调用一次的。
olderma 2012-07-26
  • 打赏
  • 举报
回复
在mfc的****view中添加OnEraseBkgnd函数,在里面更新就ok
向立天 2012-07-26
  • 打赏
  • 举报
回复
Ginie 2012-07-26
  • 打赏
  • 举报
回复
pDC
memDC
双缓存画图吧
gold_water 2012-07-26
  • 打赏
  • 举报
回复
建议看MFC框架。。。
zgl7903 2012-07-26
  • 打赏
  • 举报
回复
贴点关键代码出来看看
SHAOIT 2012-07-26
  • 打赏
  • 举报
回复
答者有分咯。。。各抒己见
SHAOIT 2012-07-26
  • 打赏
  • 举报
回复
用 myknowledge 方法:上面的问题弄好了,但是问题又来了
我是画了一个图片的散点图,打印在静态文本上,现在我想画一个坐标获取静态文本的rect属性

CRect rect;
CWnd* pWnd=GetDlgItem(IDC_STATIC);
pWnd->GetWindowRect(&rect);
CPen PlotLine;
PlotLine.CreatePen(PS_SOLID, 1,RGB(255,255,255));
pDC->MoveTo(rect.left,-rect.top);
pDC->LineTo(rect.left,-rect.bottom);
这个 直线看不到
这个能看到结果
pDC->TextOut(rect.left,-rect.top,L"1");
我估计是被设置桌面的画刷给刷掉了。。。
现在没辙了。。。。。。。。
大家给出自己的想法。。。也可以给点小段代码。。。
明天晚上11点结贴。。。哈哈。。。多劳多得了,讲的好的还会追加分数了。。。。
fronz 2012-07-26
  • 打赏
  • 举报
回复
程序结构有问题吧,理解一下OnPaint,Ondraw之类函数的作用及消息响应,重新考虑一下你的程序结构,将你的代码单独做成函数加入到适当位置。
eden922 2012-07-25
  • 打赏
  • 举报
回复
不必在onpaint里画的,每次刷新都会调有onpaint函数,你可以在onsize()中写这个函数,当窗口大小发生变化时,会刷新
也可以用这个OnEraseBkgnd(CDC* pDC)

还有个“位图缓存‘的概念可以消除闪烁你可以在网上查一下;
罗平 2012-07-25
  • 打赏
  • 举报
回复
画图函数中不能调用 Invalidate 或 InvalidateRect,因为这个会触发 OnPaint,就进入死循环。
罗平 2012-07-25
  • 打赏
  • 举报
回复
画图函数中不能调用 Invalidate 或 InvalidateRect,因为这个会触发 OnPaint,就进入死循环。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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