001
01.04.2003, 13:27 Uhr
Uwe
C/C++ Master (Administrator)
|
Hallo Micha, ich würde jetzt ohne groß über Deine Variante nachzudenken die Methode SetColumnWidth des Controls nehmen. In Bezug auf das gestrige letzte Beispiel von mir hier ein Lösungsansatz.
C++: |
// void AutoSizeColums (int col=0); void CListDlg::AutoSizeColumns(int col /*=0*/) { int min = col < 0 ? 0 : col; int max = col < 0 ? GetColCount()-1 : col; for (col = min; col <= max; col++) { m_list.SetColumnWidth(col,LVSCW_AUTOSIZE); int w1 = m_list.GetColumnWidth(col); m_list.SetColumnWidth(col,LVSCW_AUTOSIZE_USEHEADER); int w2 = m_list.GetColumnWidth(col); int w = MAX(MINWIDTH,MAX(w1,w2)); m_list.SetColumnWidth(col,w); } Invalidate(); }
int CListDlg::GetColCount() const { CHeaderCtrl* pHeader = (CHeaderCtrl*)GetDlgItem(0); return pHeader->GetItemCount(); }
|
Im Header:
Und im stdafx.h
C++: |
template <class T> inline const T& MAX(const T& t1, const T& t2) { return t1 < t2 ? t2 : t1; }
|
Lass Deine Datei einlesen, danach kannst Du mit
C++: |
void CListDlg::OnButton1() { m_list.DeleteAllItems(); /* Jetzt der Part des einlesens */ ............. ............. ............. AutoSizeColumns(); /* 0 ist ja default */ AutoSizeColumns(1); AutoSizeColumns(2); AutoSizeColumns(3); }
|
Deine Spalten formatieren. -- "Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."
Bis dann... Uwe Dieser Post wurde am 01.04.2003 um 13:31 Uhr von Uwe editiert. |