日期:2014-05-20  浏览次数:20721 次

50分,你能解决这个令人头疼的问题吗?(关于wf界面的)
在panel中绘制小型的图标,比如一个32×24的位图,图片有自己的鼠标up、down、move事件,可以用鼠标拖动,现在的问题是:panel中绘制有多个这样的图标,这些图片大小,形状相同,当拖动其中一个移动时不小心正好移到了另一个图标的正上方,这时候两个图标完全重合(也会出现多个图标重合的情况),怎么也分不开了!
我实现图片移动的原理是:1、鼠标点击图片时记录鼠标的初始位置。
                                                2、鼠标移动时,记录鼠标的位置,计算与初始位置的差值,触发panel的OnPaint事件,移动图片。

那位高手帮帮忙原帖位置:http://community.csdn.net/Expert/topic/5293/5293075.xml?temp=.639187

分在那里。

------解决方案--------------------
原帖太长,懒得看,我也不在乎分数.

不过我觉得你处理OnPaint事件有点不妥.

你应该处理图片本身的MouseDown和MouseMove,MouseUp事件.
在mousedown事件中将标识符置为1.
MouseMove事件检查标识符是否为1,为1则获取当前鼠标位置,以此调整图片位置.
在MouseUp事件中将标志符置为0.

需要注意处理闪烁问题,性能问题.