社区
C++ 语言
帖子详情
BeginPaint()和EndPaint()
infsafe
2009-04-20 06:52:52
我调用了BeginPaint()后不调用EndPaint()会有什么结果??
...全文
172
9
打赏
收藏
BeginPaint()和EndPaint()
我调用了BeginPaint()后不调用EndPaint()会有什么结果??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
JulianSeaver
2009-06-08
打赏
举报
回复
endpaint其实还有一个功能. 就是标志当前的窗口已经绘完. 如果不调用它. 那么有可能线程的消息队列中不会清除掉WM_PAINT, 即会不停的收到WM_PAINT消息 .
虽然平时不一定看得出来这一点. 但有时会有影响绘图, 有一次我自绘窗口移动时. 就发现我的框怎么都画不出来, 跟了半天, 就发现是一直陷入了WM_PAINT里面去了. 我画的外框就不停的被它覆盖掉.
而且如果内容比较丰富的话并且不使用又缓冲. 会看得出闪烁.
Sco_field
2009-04-20
打赏
举报
回复
循环100000次调用而不释放,看什么结果
「已注销」
2009-04-20
打赏
举报
回复
你可以通过任务管理器看资源句柄不关闭导致的资源泄露情况。
你可以在循环里多次BeginPaint看看
「已注销」
2009-04-20
打赏
举报
回复
更正一下:不叫资源数,叫资源句柄。打错字 了。
「已注销」
2009-04-20
打赏
举报
回复
[Quote=引用 3 楼 infsafe 的回复:]
谢谢您!能否举个例子?比如说我在windows上显示了一行字;然后怎么测试让这个死锁的结果显示出来呢?
[/Quote]
一行字是显示不出来什么的。
其实,应该不是死琐,而是资源不能及时释放。
如果GDI资源大量浪费,会导致菜单的背景色变黑。
一般来讲:系统允许的资源数不能超过某一个值的。
infsafe
2009-04-20
打赏
举报
回复
up
infsafe
2009-04-20
打赏
举报
回复
[Quote=引用 1 楼 hairetz 的回复:]
http://jcszjswkzhou.itpub.net/post/32804/315417
显示完成后,一定要记得调用函数EndPaint,因为使用BeginPaint函数请求了独占的显示资源后,如果不释放回去,就会让其它程序永远获取不到显示资源了,这样系统就死锁了。
[/Quote]
谢谢您!能否举个例子?比如说我在windows上显示了一行字;然后怎么测试让这个死锁的结果显示出来呢?
mengde007
2009-04-20
打赏
举报
回复
my god^
猫已经找不回了
2009-04-20
打赏
举报
回复
http://jcszjswkzhou.itpub.net/post/32804/315417
显示完成后,一定要记得调用函数EndPaint,因为使用BeginPaint函数请求了独占的显示资源后,如果不释放回去,就会让其它程序永远获取不到显示资源了,这样系统就死锁了。
20120821-Be
gin
Paint
()和
End
Paint
()
本文介绍Be
gin
Paint
()和
End
Paint
()函数的应用场景,指出这两个函数仅能在WM_
PAINT
消息响应中使用,不能应用于其他消息。
Be
gin
Paint
() 和
End
Paint
() 比较
本文探讨了Be
gin
Paint
与GetDC在绘图中的不同作用,前者专用于WM_
PAINT
消息处理,可避免背景重绘;后者则更为灵活,但在WM_
PAINT
处理中需配合WM_ERASEBKGND使用。同时介绍了双缓冲技术解决屏幕闪烁问题。
Be
gin
Paint
() 和
End
Paint
() GetDC()
本文探讨了Windows编程中Be
gin
Paint
与GetDC的功能差异。Be
gin
Paint
用于处理WM_
PAINT
消息,确保无效区域得到正确更新,避免闪烁;GetDC则允许程序员主动绘制窗口,不受WM_
PAINT
限制。
在On
Paint
中必须调用一次Be
gin
Paint
和
End
Paint
,且也只能调用一次。(下)
本文详细解析了在Windows程序中On
Paint
函数的工作原理及其与WM_
PAINT
消息的关系。阐述了在On
Paint
中调用CDialog::On
Paint
()的重要性,并解释了如果不正确地处理Be
gin
Paint
和
End
Paint
函数将导致WM_
PAINT
消息无法被清除,进而造成On
Paint
函数被无限调用的问题。
GUI02-在窗口上跟踪并输出鼠标位置(Win32版)
本文详细介绍了如何在Windows编程中使用WM_MOUSEMOVE和WM_
PAINT
消息来获取并显示鼠标位置,涉及Be
gin
Paint
(),GetDC(),
End
Paint
()和InvalidateRect()函数的使用,以及参数和结构的解释。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章