我正在 wxWidgets 中制作一个程序,它具有与 MS Paint 类似的功能,但用于更具体的目的。
我了解创建笔/铅笔对象的各种方法,该对象在您拖动鼠标时提交单个像素。我无法想象的一件事是其他一些常用工具:矩形、椭圆形、直线等。对于这些,您按下鼠标左键设置一个原点,当您在它周围拖动鼠标时会暂时呈现一个从原点到当前鼠标位置在画布上覆盖形状,最终在释放鼠标按钮时将形状提交给图像。
创建此过程的最佳方法是什么?我能想到的唯一解决方案是将原点存储在鼠标按下时,并在拖动鼠标时将临时变量设置为当前鼠标位置。每次鼠标位置发生变化时,都会使从原点到存储的鼠标位置的矩形无效。释放鼠标按钮后,形状将提交给图像模型。
我还没有实现这个,因为我想先得到反馈。这是最佳解决方案,还是容易导致可见闪烁,但有更可取的解决方案?