Win32 C ++,在屏幕上绘制一个可拖动的矩形

时间:2014-01-07 21:33:46

标签: c++ windows winapi graphics

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

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

现在,为了给予这种方法可信度,它确实以我期望的方式在屏幕上绘制一个矩形,但是一旦拖动停止,矩形就会持续存在。我已经看过摆脱这个的方法,比如更新矩形继续显示的窗口但是我没有设法删除它。由于你必须重新绘制矩形每个显示器刷新并且矩形持续存在,所以我留下了大量的矩形被绘制在整个屏幕上然后我必须将鼠标悬停或点击任何窗口这些被绘制以移除它们

1 个答案:

答案 0 :(得分:1)

请改用DrawFocusRect。再次绘制相同的矩形将其从屏幕上移除。