微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何知道WM_PAINT是否必须擦除背景? 窗口API

我想logging油漆消息来解决问题,我需要一种方法来知道WM_PAINT消息是否必须擦除背景,所以我在WM_PAINT处理中做了这个:

hdc = BeginPaint(hwnd,&ps); //code to output the Invalid RECT is ommited..... if(ps.fErase){ //output true }else{ //output false };

即使我调用InvalidateRect(hwnd,true); ps.rcPaint也有正确的值,但ps.fErase总是“false” InvalidateRect(hwnd,true); 其中hwnd是我loginWM_PAINT消息的窗口,这里是一些输出图像

我想知道如果无效的统治绘画请求包括擦除背景像我最后一个InvalidateRect(hwnd,1); 我在做什么错了?

提前致谢

Windows控制台中的C ++键input

将QWebEngineView呈现给打印机

C ++ Linux套接字在char * msg中添加variables

低级控制台input和redirect

Windows – 以编程方式检查托pipe的wlannetworking是否可能在系统的硬件上

Windows挂在WM_WINDOWPOSCHANGED

C ++ USB通信

glibc 1.22 malloc(ptmalloc2)+ Poco(1.5.2)ThreadPool =非常慢?

System()调用C ++及其在编程中的angular色

如何在C ++源代码自动导出用于DLL的名称

如果后台需要擦除,系统会在WM_PAINT之前发送WM_ERASEBKGND 。 如果你没有处理这个消息,那么它将通过DefWindowProc自动清除背景。

您需要处理WM_ERASEBKGND并返回0以指示系统背景尚未被擦除。 它会在WM_PAINT给你另一个机会。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐