CListCtrl eine Spalte zuviel



  • Hi,

    weiß jemand, warum ListCtrl's in der Eigenschaft Ansicht=Bericht immer eine Spalte zuviel haben? Und wenn ja, wie bekomm ich die weg?
    Ich fülle die ListBox wie folgt:

    pList->InsertColumn(0, ("Spalte 1"), LVCFMT_LEFT, 100);
    pList->InsertColumn(1, ("Spalte 2"), LVCFMT_LEFT, 100); 
    pList->InsertColumn(2, ("Spalte 3"), LVCFMT_LEFT, 100);
    

    Danke
    Thomas



  • Hm... wenn du die Spalten so aufteilst das die Pixelbreite in der Summe der ListCtrl Breite entspricht dann is da keine andere Spalte....



  • Tom25 schrieb:

    Hi,

    weiß jemand, warum ListCtrl's in der Eigenschaft Ansicht=Bericht immer eine Spalte zuviel haben? Und wenn ja, wie bekomm ich die weg?
    Ich fülle die ListBox wie folgt:

    pList->InsertColumn(0, ("Spalte 1"), LVCFMT_LEFT, 100);
    pList->InsertColumn(1, ("Spalte 2"), LVCFMT_LEFT, 100); 
    pList->InsertColumn(2, ("Spalte 3"), LVCFMT_LEFT, 100);
    

    Danke
    Thomas

    Die ist nicht "zuviel". Die Länge deiner dezeichneten Box ist einfach grösser als deine 3x 100!
    Du kannst die Grösse deiner 3. Spalte berechnen, so dass diese den rest auffüllt:

    // Breite des Listcontrols holen 
      RECT rect; 
      m_List2.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);
    

    'nBreite' minus die grössen der Spalten ergibt die Grösse für die letzte Spalte.
    Alles klar?

    PS: Den Code habe ich von einem anderen freundlichen Forumbenutzer erhalten. sorry, weiss nicht mehr von wem 😞



  • Juuup...

    hätt ich auch selbst merken können. Tausend dank dafür!
    😃



  • Hmm, die Kommentare kommen mir sehr bekannt vor. 😃


Anmelden zum Antworten