我在MFC對話框MyDlg
(C++,VS2015,64位Windows 7)中創建了一個MFC網格控件(Code Project MFC Grid control 2.27)。該MyDlg.h
文件包含調整MFC網格控件以適應對話框?
CGridCtrl gridCtrl;
和資源編輯器用於添加MFCGridCtrl
類型的自定義控制。在MyDlg.cpp
,我繼承與
DDX_Control(pDX, IDC_ComponentRatios, gridCtrl);
控制在MyDlg::OnInitDialog
,我設置行數和列數與
gridCtrl.SetColumnCount(2);
gridCtrl.SetRowCount(2);
gridCtrl.EnableWindow(TRUE);
我得到的是2×2格我期望,但尺寸自定義控件的大小與網格的大小不匹配。
自定義控件的寬度是錯誤的,因爲設置列計數看起來是爲滾動條留出空間,這是不必要的。
高度不變,這是錯誤的,因爲自定義控件的大小爲8行,而我在本例中僅使用2(實際需要的行數是可變的)。
如何獲取網格以填充自定義控件的寬度,並調整該控件的高度以匹配?
如果您使用'CGridCtrl'而不是'ExpandColumnsToFit'方法。 –
如果你想調整控件本身的大小,你可以使用SetWindowPos(),但還有其他的東西需要考慮。它的最大尺寸應該是多少?包含對話框是否可以調整大小?如果你想控制它的寬度,那麼最小,最大,單個列寬應該是多少? –
我使用MoveWindow來設置控件的整體大小。單元格的數量及其尺寸是固定的,並且在創建對話框時已知。對話框不能調整大小,但即使是這樣,控件也不會改變。 – Woody20