绘制滚动条与MFC的小问题

时间:2008-10-12 20:54:17

标签: visual-studio visual-c++ mfc

在MFC应用程序中,滚动条相交有一个小的矩形区域(窗口的右下角)。似乎该区域仅在调整帧大小时失效。在其他情况下(例如,如果在其上拖动另一个窗口),此区域不会重新绘制。

我已经能够在新创建的项目中在VS 6和2008中重现它。我也看到一些具有相同问题的商业应用程序。要重新创建它:

  1. 使用CScrollView派生视图创建新的SDI项目。
  2. 调整窗口大小以显示两个滚动条。
  3. 在该矩形上拖动另一个窗口以查看重绘问题。
  4. 任何想法如何摆脱这个?

1 个答案:

答案 0 :(得分:1)

一个解决将陷阱 CScrollView OnPaint 方法,并在此方法中添加代码以始终绘制底部角落客户端窗口。

但是这个绘图代码还需要调用 GetDC 来获取新的 CDC ,以便它可以绕过 BeginPaint CDC 通过 WM_PAINT 消息传入。