创建一个选取框并不难,可以用DrawFocusRect、FrameRgn等API来实现,但要实现一个类似于PS的流动的选取框,相对来说不是一件简单的事。有的朋友干脆使用了若干位图来模拟,但这样做有一个缺点,即二次选择时,由于FrameRgn对NotXor绘图模式无效,从而导致无法轻易地擦除选取框。当然,可以事先将窗口画面保存在内存中,在需要擦除选取框时,再恢复内存中的画面。有没有比这更方便的办法呢?其实很简单,使用花式画笔就能达到目的,并且避免了前面所说的缺点或不足。
需要说明的是,在使用前,需要在窗体上放置一个Timer控件,然后再把代码复制到窗体代码里就可以了。程序运行后,按下左键移动鼠标,将出现一个随着鼠标缩放的虚线选择框,松开鼠标按键后,该虚线选择框将呈现流动状态。此外,你还可以多次进行测试,选择框会自动重新生成。好了,言归正传,请看代码: