在Windows对话框中处理WM_ERASEBKGND时如何避免闪烁
发布时间:2020-12-14 01:46:41 所属栏目:Windows 来源:网络整理
导读:我有一个调整大小的对话框.它还有一个自定义背景,我为了响应WM_ERASEBKGND调用(目前是一个简单的FillSolidRect调用)来绘制. 当对话框调整大小时,会发生巨大的闪烁.要尝试减少闪烁,我列举所有子窗口,并将它们添加到剪辑区域.这似乎有一点帮助 – 现在所有的孩
我有一个调整大小的对话框.它还有一个自定义背景,我为了响应WM_ERASEBKGND调用(目前是一个简单的FillSolidRect调用)来绘制.
当对话框调整大小时,会发生巨大的闪烁.要尝试减少闪烁,我列举所有子窗口,并将它们添加到剪辑区域.这似乎有一点帮助 – 现在所有的孩子控制器中的闪烁显示在他们重画的时候. 调整大小时如何使对话框无闪烁?我怀疑双缓冲必须发挥作用,但我不知道如何使用带有子控件的对话框(不使所有子控件所有者绘制或类似于此). 我应该注意到,我使用C(而不是.NET)和MFC,虽然纯粹基于Win32的解决方案是受欢迎的:) 注意:有一件事我试过但没有工作(不知道为什么)是: CDC memDC; memDC.CreateCompatibleDC(pDC); memDC.FillSolidRect(rect,backgroundColor); pDC->BitBlt(0,rect.Width(),rect.Height(),&memDC,SRCCOPY);
假设“FillSolidRect”是您的背景的擦除,然后从WM_ERASEBKGND返回TRUE.
要执行您几乎在代码片段中执行的双重缓冲,您将需要使用CreateCompatibleBitmap并将其选择到您的memDC中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- window身上的方法
- 在Ansible中,如何连接到Windows主机?
- 如何在Windows上使用命令行获取svn修订信息
- windows – 在脚本编辑器中显示行号
- winapi – Win32 API独有的功能?
- windows-7 – 在XP Mode和VMware之间选择在Windows 7上进行
- 我可以安装带有测试证书的x64驱动程序而不禁用驱动程序签名
- windows – Docker-compose无效的bind mount spec“/ rootf
- installer – MSI文件使用的压缩方法是什么?
- windows-phone-8 – 如何在Windows Phone 8真实设备上设置假
推荐文章
站长推荐
- windows-7 – 如何在Windows 7中使用MaraDNS解析
- windows – 虽然Web浏览器在同一台计算机上运行,
- 重新安排WPF中的ListBox项目(如Windows 8启动屏幕
- Windows系统下WEB服务器权限的设置详解(二)
- .net – 选择Microsoft Office主Interop程序集版
- Windows上的Python 2.6:如何使用“shell = True
- windows-service – 使用“sc”命令控制名称中包
- windows – 如何让for循环使用逗号分隔的字符串?
- windows – 使用7z.exe递归解压缩
- Windows – 从命令提示符更改快捷方式的目标
热点阅读