窗口背景的擦除问题 在做一个位图编辑的东西。需要有缩放功能,但是当把图像放大显示,然后缩小显示,背景无法清除,请问如何解决。只有窗口切换后,或窗口大小发生变化 后才能清除。请问大家,这大概是什么原因,哪方面的逻辑出了问题? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我用Invalidate把整个客户区都无效了,但还是不管用。 只有窗口切换后,或窗口大小发生变化 后才能清除.这不就相当于对窗口调用一次Invalidate(TRUE)吗? 背景无法清除,看你的wm-erasebackground 问题就在这儿,窗口切换或窗口大小变化后能清除说明Invalidate(TRUE)有效。但是当我 对图片进行缩放后,显式调用Invalidate(TRUE)却无法擦除背景。不知道是什么问题。 因为在你窗口尺寸发生变化后,你的显示图片的窗口才会收到重画的消息。所以,在你自己变更了图片尺寸后对窗口区域做Invalidate来刷新,不知道你的代码有没有考虑过绘制效率的问题。 绘制代码放到OnPaint里面了。效率不高,当窗口大小改变时会闪屏。恳请楼上指点思路,或提供相关介绍的网页,谢谢。 你看d3d画图都是先在后台缓冲区画,画好了再翻转到前台缓冲区,再显示。所谓的离屏缓冲 (offscreen buffer )不知道是否对你又启发 Invalidate(True);UpdateWindow(); 我现在也被这个问题所困扰。我的情况是,用AfxRegisterWndClass注册一个窗口具有透明背景的WNDCLASS结构。我想在移动这个窗口的时候,让窗口的背景不断被擦除,以实现窗口背景始终是透明的,在移动的过程当中始终可以看到窗口背景后面的内容。我知道窗口被移动时会产生WM_MOVE消息,而且还应该在响应WM_ERASEBKGND消息的处理函数中返回非零值,但是具体该怎么做?求解! vs2010单文档程序如何使用datagrid控件 怎么程序一开始就用DirectDraw 显示一幅图 程序退出时的问题—— 如何设置TextOut文字的背景色? 用ODBC存储和读取Excel数据表 已知链表元素(元素为结构类型)中的一个成员变量的值,怎样查找它、且将其取出呢? 为何一个MFC程序会有时能正常运行,有时却不能正常运行呢? 初級問題:這樣聲明一個全局變量為什麼會出錯? 可伸缩对话框,缩小的时候为什么看不见 请教国内有没有Microsoft新闻组的镜像站点? 怎么样弄一个很漂亮的小时钟界面出来? 关于字符串分离数据的问题
但是当我 对图片进行缩放后,显式调用Invalidate(TRUE)却无法擦除背景。
不知道是什么问题。
所以,在你自己变更了图片尺寸后对窗口区域做Invalidate来刷新,不知道你的代码有没有考虑过绘制效率的问题。
效率不高,当窗口大小改变时会闪屏。
恳请楼上指点思路,或提供相关介绍的网页,谢谢。
不知道是否对你又启发
UpdateWindow();
我知道窗口被移动时会产生WM_MOVE消息,而且还应该在响应WM_ERASEBKGND消息的处理函数中返回非零值,但是具体该怎么做?求解!