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

时间:2012-06-12 01:29:47

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

使用visual studio C ++ 2010.

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

我注意到这个窗口中的其他“对象”(特别是我所拥有的MFC按钮,例如“取消”)与窗口一起缩放,当我将窗口调整到较小的尺寸时不会消失。它们跟随窗口的边缘,好像它们被赋予智能相对坐标而不是我的网格所遵循的绝对坐标。

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

我认为它可能是.rc文件中的某种窗口属性或对象属性,但我比较了文件并找不到引线。

1 个答案:

答案 0 :(得分:0)

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

如果按钮改变大小和位置,您可能正在使用某种类来处理子控件的大小调整。

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