MFC 网格是绝对布局,在窗口大小调整期间会被剪裁



使用 Visual Studio C++ 2010.

目前在MFC代码的窗口中,我有一个网格。如果我调整窗口大小(手动拖动角),我希望网格"变小",但是当我调整窗口大小时,网格实际上是完全静态的,因此例如将窗口大小调整为非常小的尺寸将导致网格的边缘变得超出窗口的可见性。

注意到此窗口中的其他"对象"(特别是,我拥有的MFC按钮,例如"取消")确实会随窗口缩放,并且在将窗口大小调整为较小尺寸时不会消失。它们沿着窗口的边缘,就好像它们被赋予了智能的相对坐标,而不是我的网格遵循的绝对坐标。

目前我在这里使用网格 http://www.codeproject.com/Articles/8/MFC-Grid-control-2-27 尽管我高度怀疑它不是问题的根源(有一个使用它的示例代码,并且调整大小的行为符合预期;我无法编译它,但我运行了 exe 示例)。我最近从MSFlexGrid切换(因为它不支持64位),但是在以前的版本中,当我使用MSFlexGrid时,它也没有这个问题。

我认为这可能是 .rc 文件中的某种窗口属性或对象属性,但我比较了这些文件,没有发现任何线索。

没有像窗口属性这样的东西,它告诉窗口将大小调整为父级的大小。

如果按钮更改大小和位置,则可能是在使用某种类来调整子控件的大小。

对网格执行相同的操作,或相应地通知网格有关父大小更改和辅助网格大小的信息。

最新更新