gpt4 book ai didi

c# - 如何在 C# 中清除屏幕区域或重绘屏幕

转载 作者:太空宇宙 更新时间:2023-11-03 14:33:24 25 4
gpt4 key购买 nike

我正在 C#.Net 2.0 中创建用户控件。我必须在这些控件之间应用拖放图像。我做了拖放效果。

但问题是我必须在鼠标拖动时显示控件移动。为此,我在 ControlDraw.DrawReversibleFrame() 的帮助下在屏幕上绘制了一个矩形

问题是,在使用鼠标移动事件绘制时,矩形会在整个屏幕上绘制,并且由于屏幕上没有重新绘制,所以它存在于屏幕上。

所以请谁能告诉我如何清除绘制的图形或如何强制重绘屏幕。

最佳答案

在新位置绘制下一帧之前,您必须在与之前相同的位置绘制“可反转”帧以将其反转。

伪代码是:

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;
}

但总的来说,我建议将鼠标光标更改为拖放图标或图像的缩略图会更合适。

关于c# - 如何在 C# 中清除屏幕区域或重绘屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2070226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com