使用GDI+绘制了曲线,想通过鼠标在图上画个虚线框然后以该部分为中心进行放大,平时很常见的功能。
先别说放大,就说实现矩形框的绘制实现。这个在C++里实现过,通过在MouseMove里获取ClientDC,好像ClientDC是个临时绘图设备句柄,然后画矩形框,擦出上一次绘制的矩形框(InvalidateRect),UpdateWindow等实现了该功能。
现在在C# 中也想实现该功能,但是有问题:
1、如果按照上面的思路整,回发现在绘制矩形框的时候里面的曲线也会跟着重绘,另外在绘制矩形框的过程中,由小到大时能清理上次矩形的痕迹,但由大到小时便由很多上次的痕迹。这相当于采用的局部擦除、重绘的方法,但下面的曲线也会跟着重绘。
2、如果采用的是该控件的refresh,则绘制矩形过程中由大到小时的痕迹没有了,但肯定的下面的曲线会重绘,如下图所示。

如果实现图片中的功能,让下面的曲线在矩形框绘制时不进行重绘就可以了,怎样实现该效果?
------解决思路----------------------
曲线有间距和线宽,还有起始索引,拟定一个scale变量,开始是1,放大就是增大scale,缩小就减小scale,画的时候,线宽和间距都和scale做个乘法
------解决思路----------------------
你别在一个控件上画啊,再叠加一层控件上画不就好了