Cellheaders bei CListCtrl - Variable grösse?
-
'Tach zusammen.
Habe ein CListCtrl im Bericht (engl. report) Modus, welches ich in 5 ungleichmässige Spalten aufteile
CString sH1, sH2, sH3, sH4, sH5; sH1.LoadString(IDS_H_H1); sH2.LoadString(IDS_H_H2); sH3.LoadString(IDS_H_H3); sH4.LoadString(IDS_H_H4); sH5.LoadString(IDS_H_H5); // add the cell headers m_List2.InsertColumn(0, sH1, LVCFMT_LEFT, sH1.GetLength()*9); m_List2.InsertColumn(1, sH2, LVCFMT_LEFT, sH2.GetLength()*40); m_List2.InsertColumn(2, sH3, LVCFMT_LEFT, sH3.GetLength()*25); m_List2.InsertColumn(3, sH4, LVCFMT_LEFT, sH4.GetLength()*10); m_List2.InsertColumn(4, sH5, LVCFMT_LEFT, sH5.GetLength()*8);
Alles Bestens bis jetzt.
Nun möchte ich aber unbedingt, dasss die Breite der letzten Spalte (sH5) den Leerraum bis zum CListCtrl "auffüllt", sonst sieht es aus, wie wenn noch eine 6. Spalte vorhanden wäre, diese aber nicht beschriftet ist etc. Hoffe ihr wisst wie ich es meineWer kann mir helfen und ein Codeschnipsel dazu posten?
-
// Breite des Listcontrols holen RECT rect; m_lscFilialen.GetWindowRect(&rect); // Die Breite ist: // Rechter Rand - Linker Rand - Beide 3D-Ränder - Breite einer Scrollbar // Dadurch wird eine horizontale Schrollbar vermieden und es sieht gut aus. int nBreite = rect.right - rect.left - 2*::GetSystemMetrics(SM_CYEDGE) - ::GetSystemMetrics(SM_CXVSCROLL);
So, nun kannst du mit nBreite rumrechnen.