17.4.2 DrawNow()模式
有必要在这里暂停一下,注意关于应用程序发起的重绘的一些规则:
应用程序发起的重绘通常在使用函数名为DrawXxxNow()格式的函数中完成,Xxx代表应用程序特定的图形元素,比如OneTile;
DrawXxx()函数(没有 Now)期待从一个激活的图形上下文和开始重绘的相关环境中调用,绘制到预先标记为无效的区域;
简单的DrawXxxNow()无效化、激活图形上下文,开始重绘,调用DrawXxx(),结束重绘,然后禁用图形上下文;
更复杂的DrawXxxNow()函数可能需要调用很多DrawXxx()函数;
如果可以,应该避免连续多次调用 DrawXxxNow()函数,因为它涉及(典型的)多余的无效化、激活图形上下文和开始重绘的代码;
任何情况下避免从激活图形上下文/开始重绘代码中调用 DrawXxxNow()函数,因为如果当这样的代码已经处于激活状态而你重复这些函数时,就会造成严重错误。
在自己的应用程序中,对于任意选择的重绘可以容易地复制DrawNow()模式。
在这一章稍后的部分将看到激活和开始重绘函数实际上是如何做的。
【责任编辑:
董书 TEL:(010)68476606】