Großenanpassung von Elementen



  • Moin,
    ich habe eine Größer änderbare DialogBoxs. Auf dem befindet sich ein ListCtrl.
    Nun soll das ListCtrl immer den kompletten Dialog ausfüllen.
    Das geht auch soweit. (Aber nur beim vergrößern)

    Code(in OnPaint):

    CRect rect;
    ((CProduktionsverwaltungApp*)AfxGetApp())->m_pMainWnd->GetClientRect(rect); //dialogbox größe hohlen
    m_CtrlMainList.MoveWindow(7, 7, rect.Width()-14, rect.Height()-14); // ListCtrl größe ändern
    

    Nun mein Problem:
    Wenn ich den Dialog verkleiner ändert sich aber nicht die Größe des ListCtrls.
    Ich Tip mal darauf das vieleicht OnPaint nicht die richtige Funktion ist, wo muss es denn ansonst hin? Oder was da falsch?

    Vielen Dank für kommende Antworten

    MfG Gabriel



  • Beim Erstellen eines Fensters frage ich WM_CREATE ab.
    -> Bei der Grössenänderung WM_SIZE abfragen, und NICHT WM_PAINT !

    ...::OnSize( int cx, int cy)
    {
      if( m_CtrlMainList.IsWindow())
      {
        CRect rect;
        GetClientRect(rect); //dialogbox größe hohlen
        m_CtrlMainList.MoveWindow( 7, 7, rect.Width()-14, rect.Height()-14); // ListCtrl größe ändern
      }
    }
    


  • Danke! ☺


Anmelden zum Antworten