两个问题
1:
如果先设置一种背景色和字色,打印前面一段,然后在设置另一种背景色和字色,打印后面一段,虽然可以暂时制造出如题的效果,但是只要窗口刷新一下,马上全部字色和背景色就都会变成最后设置的那种了,字体也是,不管之前如何设置,窗口一刷新,显示的所有结果只保留最后设置的一次。这个问题怎么解决?
我找了好久,似乎没有局部设置hdc的API,字体、字色、字的大小、背景等等,只有全局设置一个hdc的API,没有局部设置的。可是,在edit编辑框中却实现了这个效果(鼠标拖动选中一行字,选中的部分原本黑子白底就变成了白字蓝底,但是就算重刷窗口,其他的字依然是黑子白底,选中的部分依然是白字蓝底)。
用两个窗口可以做到,但是在我听说directUI里面,是直接往父窗口上绘图的,那样就不能避免我的这个问题了,那DUI是如何做到的?
经过我的思考,如果没有局部设置hdc的API的话,就只有一个可能了,那就是在绘图函数比如onpaint()里面写上全部的绘图代码,包括先设置一种模式再设置另一种,最后设置回原先的那种模式。难道,只要是修改绘图的代码,都必须全部放在WM_PAINT里面吗?2:
画一个圆或者别的不规则闭合曲线,如何判定鼠标是否在曲线围成的形状内?