基于对话框的MFC中如何重绘Picture控件
我在Picture控件上绘制坐标轴以及曲线,但是每当切换窗口后,Picture控件上的图形就没了,程序里有默认的OnPaint函数,我在这里面添加了绘图程序还是没有用。所...
我在Picture控件上绘制坐标轴以及曲线,但是每当切换窗口后,Picture控件上的图形就没了,程序里有默认的OnPaint函数,我在这里面添加了绘图程序还是没有用。所以想请教一下应该怎么办才好。
展开
3个回答
展开全部
在MFC中新建一个基于【对话框】的应用程序。
在这个主对话框上添加一些【静态文本框】和一些【编辑框】,用来显示人员的基本资料,同时添加一个picture控件,用来显示人员的照片。
人员信息和图片的名字全部都存到mysql数据库中,在【主对话框】中有四个按钮【查找】【添加】【删除】【更新】,点击时能够弹出4个非模态对话框,这些我都能实现,点击查找按钮,弹出查找对话框,添加查找条件,能够查找到这样的信息,可是我就不知道,怎么将查找到的图片信息显示在主对话框的picture控件中,添加的代码放在什么位置。
在这个主对话框上添加一些【静态文本框】和一些【编辑框】,用来显示人员的基本资料,同时添加一个picture控件,用来显示人员的照片。
人员信息和图片的名字全部都存到mysql数据库中,在【主对话框】中有四个按钮【查找】【添加】【删除】【更新】,点击时能够弹出4个非模态对话框,这些我都能实现,点击查找按钮,弹出查找对话框,添加查找条件,能够查找到这样的信息,可是我就不知道,怎么将查找到的图片信息显示在主对话框的picture控件中,添加的代码放在什么位置。
展开全部
添加窗口消息句柄WM_PAINT响应,不断的重绘绘制图形,代码放置在Ondraw函数中,避免重绘时图形消失。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是刷新问题,绘图代码写在OnPaint之后,系统只会在必要的时候调用刷新(比如移动窗口、窗口最小化后再打开等),如果需要手动刷新,可以使用函数Invalidate()进行强制重绘。默认参数为true,系统自动擦除背景后重绘,参数为false时,不会自动擦除背景。如果对刷新速度有较高要求,且不需求擦除背景的时候可以选择false。
上面的做法在高速刷新时屏幕会闪烁,可以考虑双缓冲技术来解决。首先在内存中建立一个DC,然后将要绘制的图形先绘制到内存DC中,最后一次性从内存中拷贝出来到当前DC,可以有效的解决闪屏问题。
详细的可以看百度文库这篇文章,重点看第7,8条
http://wenku.baidu.com/link?url=NX8qHZnWU-JInvP3ouZGp-_97B0BNUzkSVHQYUzH04h5oQ2A9f5UhEt42x3Ol47oLnFh4R3k8GsqwrOBbYO4x2TYgpYctqYbf_p0tWphymq
上面的做法在高速刷新时屏幕会闪烁,可以考虑双缓冲技术来解决。首先在内存中建立一个DC,然后将要绘制的图形先绘制到内存DC中,最后一次性从内存中拷贝出来到当前DC,可以有效的解决闪屏问题。
详细的可以看百度文库这篇文章,重点看第7,8条
http://wenku.baidu.com/link?url=NX8qHZnWU-JInvP3ouZGp-_97B0BNUzkSVHQYUzH04h5oQ2A9f5UhEt42x3Ol47oLnFh4R3k8GsqwrOBbYO4x2TYgpYctqYbf_p0tWphymq
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询