1

我一直在寻找另一种在不使用和相关 XOR 方法的情况下为视觉对象(如选定的边缘、线条等)绘制选择指示符的替代方法。原因是不需要的异或“伪影”、不适用于位图的可逆性、无法控制实际视觉外观和速度缓慢。ControlPaint.DrawReversibleFrame

另一方面,如果用户决定取消选择一两个对象,我想避免重新绘制整个场景(实际上是地图),因为重新绘制可能会非常昂贵。

所以我能看到的唯一选择是直接在 a 上实现一些基本的绘图逻辑Bitmap,但在像素更改之前存储像素的先前内容。然后(理论上)如果用户选择取消选择该边缘,我将能够重新应用选定边缘矩形的旧内容。

我的问题是您是否认为这是一个好主意,或者您是否看到我的问题的其他替代方案(在 GDI+ 内)?

提前致谢

4

2 回答 2

1

如果选择指示器只是绘制在未选择对象的顶部,您可以使用两个位图,在一个背景上绘制所有未选择的对象,在另一个上绘制选择指示器,然后将它们都绘制在屏幕上。
否则,您可以执行相同的操作,只是您渲染选定的对象而不仅仅是指示器。

于 2010-01-04T19:57:46.360 回答
0

仅将“感兴趣”的矩形存储在屏幕外缓冲区中。并在失去焦点时重新绘制。. . 或者,如果您可以根据内存数据重新绘制正常显示的部分,您应该没问题。否则,您似乎掌握了要点。

于 2009-11-26T04:55:17.013 回答