VC中解决图像重绘的问题? 我在对话框或者窗口中用BitBlt或者DrawDib画一个位图,但不想在OnDraw或者OnPaint中重绘它,应该怎么来解决重绘的问题? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 “不想在OnDraw或者OnPaint中重绘它”?不太清楚。要不试试在你的绘制函数中调用Invalidate刷新。 比如说,我在MyFunc()中调用BitBlt()中在一个对话框上画一位图,将对话框最小化后,由于没有在OnPaint()中调用BitBlt()重绘,再最大化后,对话框上的显示的位图就没有了,怎么解决这个问题??? 好像只能在OnSize里面调用你的绘制函数了 楼主说了,他不在OnPaint里面绘图,所以Invalidate应该没效果的。不过不知道他为什么要这么设计 不调用Invalidate()在其他函数中调用 在需要重绘时1、调用你自己的重绘函数2、处理WM_PAINT和WM_ERASEBKGND,避免Windows做默认工作。 这个问题是这样的。当你将屏幕进行缩放或移动等操作时,系统会自动发出WM_PAINT消息,然后OnPaint()会捕捉这个消息,一般是在这里进行重画。 但你说你不想在上述函数中重画,我想有两种方法 ,第一:用系统捕捉消息函数,来捕捉WM_PAINT消息,然后再回调函数中重画(我看过这方面的资料具体的没实践过)。 第二:你可以自定义消息,用自定义的函数来捕捉这个自定义消息也可以重画。我想我给你这些提示,你看看这方面的书一定可以实现的。祝你成功! 呵呵那不如在OnPaint()调用你的绘图函数,做的这么烦 楼主,建议你用"层窗口"吧!!!层窗口不会接收普通的WM_PAINT,所以它不用OnPaint来维护它的外形和大小,并且它变化的时候,系统也不会向别的窗口发WM_PAINT的消息!!建议找一些这方面的资料来看! 谁有VC++的基于MFC对话框的Socket通讯的代码,主要是完成服务器和客户端的发送和接受数据。 7C92120E int 3 大文本问题 如何在代码中选直接视频源 GotoDlgCtrl(GetDlgItem(ID))和GetDlgItem(ID)->SetFocus()一样吗? 小问题 关于在新类中获得view类指针的问题 如何在VC中实现随机函数(在线等) 关于DECLARE_SERIAL 和 IMPLEMENT_SERIAL 宏的疑问! Edit Box控件 有一段程序是基于对话框的,我想改成MFC dll的,该如何修改? 用cfilefind中findfile的问题
要不试试在你的绘制函数中调用Invalidate刷新。
不过不知道他为什么要这么设计
在其他函数中调用
1、调用你自己的重绘函数
2、处理WM_PAINT和WM_ERASEBKGND,避免Windows做默认工作。
但你说你不想在上述函数中重画,我想有两种方法 ,第一:用系统捕捉消息函数,来捕捉WM_PAINT消息,然后再回调函数中重画(我看过这方面的资料具体的没实践过)。
第二:你可以自定义消息,用自定义的函数来捕捉这个自定义消息也可以重画。我想我给你这些提示,你看看这方面的书一定可以实现的。祝你成功!
那不如在OnPaint()调用你的绘图函数,做的这么烦