赢得 32 C++,将可拖动的矩形绘制到屏幕上

Win 32 C++, Drawing a draggable rectangle to the screen

本文关键字:绘制 屏幕 拖动 C++ 赢得      更新时间:2023-10-16

这是我已经有一段时间的问题了。 我正在尝试有一个可拖动的矩形来向用户显示他们在屏幕截图程序中选择的区域。 我希望这样做的原因是让用户能够选择他们想要截取屏幕截图的屏幕部分。 我尝试了以下方法,但收效甚微:

void drawRect(){
HDC screenDC = ::GetDC(0);
::Rectangle(screenDC, 200, 200, 300, 300);
::ReleaseDC(0, screenDC);
}

现在,为了给这种方法应有的信任,它确实以一种我期望的方式在屏幕上绘制了一个矩形,但是一旦拖动停止,矩形仍然存在。 我已经研究了摆脱这种情况的方法,例如更新继续显示矩形的窗口,但我还没有设法删除它。 此外,由于您必须在每次显示器刷新时重新绘制矩形并且矩形仍然存在,因此我留下了很多矩形在整个屏幕上绘制,然后我必须将鼠标悬停在或单击绘制的任何窗口上以删除它们。

改用 DrawFocusRect。再次绘制相同的矩形会将其从屏幕中删除。