调整 MFC 网格控件的大小以适应对话框?
Resize MFC grid control to fit in dialog?
我在 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 网格,但是自定义控件的大小与网格的大小不匹配。
自定义控件的宽度错误,因为设置列数似乎为滚动条留下 space,这是不必要的。
高度不变,这是错误的,因为自定义控件的大小为 8 行,而我在此示例中只使用 2(实际所需的行数是可变的)。
如何让网格填充自定义控件的宽度,并调整该控件的高度以匹配?
据我了解,您质疑您希望网格自行调整大小以适合其内容吗?如果是这样,这不是网格控件的功能。
网格控件仅在需要时显示滚动条。不需要的 space 以深灰色显示。如果确实不需要滚动条,您可以使用 CGridCtrl::ExpandToFit
函数扩展列和行以删除所有滚动条。
此函数还负责确保所有网格单元覆盖完整的控件客户端 space。
我在 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 网格,但是自定义控件的大小与网格的大小不匹配。
自定义控件的宽度错误,因为设置列数似乎为滚动条留下 space,这是不必要的。
高度不变,这是错误的,因为自定义控件的大小为 8 行,而我在此示例中只使用 2(实际所需的行数是可变的)。
如何让网格填充自定义控件的宽度,并调整该控件的高度以匹配?
据我了解,您质疑您希望网格自行调整大小以适合其内容吗?如果是这样,这不是网格控件的功能。
网格控件仅在需要时显示滚动条。不需要的 space 以深灰色显示。如果确实不需要滚动条,您可以使用 CGridCtrl::ExpandToFit
函数扩展列和行以删除所有滚动条。
此函数还负责确保所有网格单元覆盖完整的控件客户端 space。