我在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(实际所需的行数是可变的)。
如何让网格填充自定义控件的宽度,并调整该控件的高度以匹配?
答案 0 :(得分:1)
据我了解你的问题,你希望网格调整自身以适应其内容?如果是这样,这不是网格控件的功能。
网格控件仅在需要时显示滚动条。不需要的空间以深灰色显示。您可以使用CGridCtrl :: ExpandToFit函数扩展列和行,以删除所有滚动条(如果它们确实不需要)。
此功能还会注意所有网格单元都覆盖整个控件客户端空间。