onpaint()函数怎么使用

ttaileen 2009-05-23 10:48:46
我设置某个按扭按下的时候,开始计算并且画线:dc.moveto(),dc.lineto()这样画出来。但是一改变窗口大小时,所有的线全没了,但是不能把这个函数的实现放在onpaint()里,因为这样的话,每次改变窗口时,函数就会从onpaint()头开始执行,而不是接着窗口改变前的执行下去。如何解决这样的问题?
...全文
176 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathuang68 2009-05-24
  • 打赏
  • 举报
回复
应该把每次画图的数据保存在文件中,或者文档类(CDocument)里,当需要重画时,就从文件或者文档类中读取图形数据,重新画一遍。
HelloDan 2009-05-23
  • 打赏
  • 举报
回复
查一下 CMetaFileDC类,你会有解决方法的
HelloDan 2009-05-23
  • 打赏
  • 举报
回复
可以用metafile保存好,到时重画就行了。
liliangbao 2009-05-23
  • 打赏
  • 举报
回复
帮顶!!!
光宇广贞 2009-05-23
  • 打赏
  • 举报
回复
在你的onpaint()函数里面调用dc.moveto(),dc.lineto()就行了。dc应该是onpaint函数的参数
ltc_mouse 2009-05-23
  • 打赏
  • 举报
回复
计算和绘图分开~~ 计算后,保存所有的line(每条线两个Point就可以了)
OnPaint只进行绘图,全部重绘。
baihacker 2009-05-23
  • 打赏
  • 举报
回复
用一个数据结构记录要做的工作.
比如用POINT的容器,记录要画的点,在OnPaint时全部绘.

用两个POINT就可以记录一个线.

用一个点和一个长度,就可以记录一个圆.

当然,还可以记录怎么着色之类的信息.

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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