1
A
回答
2
有没有办法“撤销”或“擦除”,你做XOR一个BitBlt的或任何其他图形输出(除非常特殊情况基于图形的绘图,您可以通过在原始顶部执行另一个异或绘制操作来撤消该绘图)。
你可以做的唯一事情就是在上面画一些其他东西,这就是你所说的“补丁”。通常情况下,您可以绘制窗口背景色的实心矩形。这正是OnEraseBkgrnd
消息处理程序默认执行的操作,它在OnPaint
之前运行。具体来说,它使用窗口类的背景画笔,通常是使用COLOR_3DFACE
(用于对话框)或(用于窗口)系统颜色绘制的画笔。
当然,你总是可以只是而不是首先做BitBlt。 全部绘画代码应该总是去掉里面的OnPaint
消息处理函数,所以没有办法可以最终得到“陈旧”的图形。每当窗口需要重新绘制时,就会调用该函数,并且该函数内的代码将重新绘制窗口。如果你不希望它被绘制位图,请不要调用BitBlt。
如果你已经使用临时CDC
对象(你通常应不做),你可以强制使用做了BitBlt的上你的窗口的顶部通过触发窗口的重绘被删除。最简单的方法是使用窗口的InvalidateRect()
成员函数;通过NULL
作为指向要失效的矩形的指针将使窗口的整个客户区失效,或者可以使您blitting的区域失效。
相关问题
- 1. PHP:如何删除输出?
- 2. 如何在MFC中删除行
- 3. 如何从输出中删除括号?
- 4. 如何从json输出中删除[“”]?
- 5. VS 2008 MFC - 删除MFC处理程序
- 6. 如何从'tf diff'输出中删除排除的更改?
- 7. 级联删除SQL输出
- 8. sp_helptext输出被ADO.NET删除?
- 9. C删除printf输出
- 10. Snakemake:删除输出文件
- 11. 删除Netmiko自动输出
- 12. 如何删除python输出中的任何重复项
- 13. 如何删除MFC中CPropertySheet中的默认帮助按钮?
- 14. MFC:从删除输入指针到它ControllingFunction停止线程
- 15. 的ColdFusion删除不必要的输出
- 16. 我如何删除mongo输出的调试信息
- 17. 如何从PHP输出的字符串中删除单词?
- 18. XSLT如何删除不需要的输出
- 19. 如何删除没有贯彻线程我的期望输出
- 20. 如何删除doxygen中生成输出中的行参考?
- 21. 如何从Python的输出中删除None?
- 22. 如何从xslt输出xml中删除不需要的空xmlns
- 23. 如何从Sequelize中的输出中删除关联?
- 24. 如何从输出(%)中删除我的最后一个字符?
- 25. 如何删除此正则表达式输出中的空格?
- 26. 如何删除python输出结尾的空格?
- 27. 如何删除不需要的文本输出与闪亮rgl
- 28. 如何删除XML :: Simple输出中的<opt>标签?
- 29. 如何从nosetests中删除输出的调试
- 30. iPad VGA输出 - 如何删除额外的UIScreen