调整MFC网格控件的大小以适应对话框?

时间:2017-07-03 17:22:53

标签: gridview mfc resize

我在MFC对话框MyDlg(C ++,VS2015,64位Windows 7)中创建了一个MFC网格控件(Code Project MFC Grid control 2.27)。 MyDlg.h文件包含

CGridCtrl gridCtrl;

,资源编辑器用于添加类型为MFCGridCtrl的自定义控件。在MyDlg.cpp中,我使用

对控件进行了子类化
DDX_Control(pDX, IDC_ComponentRatios, gridCtrl);

MyDlg::OnInitDialog中,我使用

设置行数和列数
gridCtrl.SetColumnCount(2);
gridCtrl.SetRowCount(2);
gridCtrl.EnableWindow(TRUE);

我得到的是我期望的2 x 2网格,但自定义控件的大小与网格的大小不匹配。

自定义控件的宽度错误,因为设置列数似乎是为滚动条留出空间,这是不必要的。

高度不变,这是错误的,因为自定义控件的大小为8行,而我在此示例中仅使用2(实际所需的行数是可变的)。

如何让网格填充自定义控件的宽度,并调整该控件的高度以匹配?

1 个答案:

答案 0 :(得分:1)

据我了解你的问题,你希望网格调整自身以适应其内容?如果是这样,这不是网格控件的功能。

网格控件仅在需要时显示滚动条。不需要的空间以深灰色显示。您可以使用CGridCtrl :: ExpandToFit函数扩展列和行,以删除所有滚动条(如果它们确实不需要)。

此功能还会注意所有网格单元都覆盖整个控件客户端空间。