我在C#.Net 2.0中创建用户控件。 我必须在这些控件之间应用拖放图像。 我做了拖放效果。
但问题是我必须在鼠标拖动时显示控制运动。 为此,我在ControlDraw.DrawReversibleFrame()的帮助下在屏幕上绘制一个矩形
问题在于,使用鼠标移动事件绘制时,整个屏幕上绘制了矩形,因为屏幕上没有重新绘制它。
所以请任何人告诉我如何清除绘制的图形或如何强制重绘屏幕。
答案 0 :(得分:1)
在绘制新位置的下一帧之前,您必须将“可反转”帧绘制在与之前相同的位置以反转它。
伪代码是:
bool prev_rev_frame = false;
Rect prev_rev_rect;
...
void on_mouse_move() {
if(prev_rev_frame)
Control.drawReversableFrame(prev_rev_rect);
Rect new_rev_rect = ....
Control.drawReversableFrame(new_rev_rect);
prev_rev_frame = true;
prev_rev_rect = new_rev_rect;
}
但总的来说,我建议将鼠标光标更改为拖放图标或图像的缩略图会更合适。