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