在STOCK Visual Studio 2012 MFC应用程序中调整停靠窗格的大小会在Windows 10下留下工件,为什么?

时间:2019-01-28 21:39:56

标签: visual-studio visual-studio-2012 mfc mfc-feature-pack bcg

我支持多个Visual Studio 2012 MFC应用程序,并且所有这些应用程序都仅在Windows 10上表现出相同的不良行为:调整停靠窗格的大小(通过鼠标)会留下伪像,即屏幕上的垃圾。垃圾看起来像一系列线,对应于被拖动的窗格边缘的中间位置。我可以使用股票VS 2012应用程序重现此行为,这证明它与我的代码无关。这是复制错误的简单说明。

在“ VS 2012新建项目向导”中,选择“ MFC应用程序”,然后按“确定”。接受除一个以外的所有选项的默认值:在最后一页(“生成的类”)上,将基类从CView更改为CScrollView。然后按完成。

现在进行以下编辑。在OnInitialUpdate的视图.cpp文件中找到“ // TODO:计算此视图的总大小”行。将大小从100更改为2000。此更改的唯一目的是确保视图具有滚动条。

现在在Windows 10下运行生成的应用程序。尝试调整停靠窗格的大小。您看到文物了吗?它们通常在滚动视图变大时出现。为什么会这样呢?迁移到VS 2017是否可以解决?还是Windows 10现在与MFC不兼容?自从我迁移到“新的” MFC(BCGSoft)功能以来,我一直担心它们的代码太复杂,并且会在将来的Windows版本中破坏。看来我似乎对此感到恐惧。

MFC Win 10 docked pane resizing bug screenshot 1 MFC Win 10 docked pane resizing bug screenshot 2

0 个答案:

没有答案