ListCtrl->Headers Änderung abfangen



  • Hallo,
    ich möchte in einer ListView die Breiten der mit der Maus eingestellten
    Spaltenbreiten speichern.
    Um die Änderungen mit der Maus abzufangen, braucht man OnChildNotify (laut MSDN).
    Die ReflectionNority-Msg OnItemChanged (HDN_ITEMCHANGED) wird überhaupt
    nicht durchlaufen(!?)

    Nun habe ich folgenden Code:

    BOOL CAntiSpamView::OnChildNotify(UINT message, WPARAM wParam, LPARAM
    lParam, LRESULT* pLResult)
    {
    if (message == WM_NOTIFY)
    {
    LPNMHEADER phdr = (LPNMHEADER)lParam;
    if(phdr)
    {
    if (phdr->hdr.code == HDN_ITEMCHANGED)
    SaveColumnsWidth();
    else if (phdr->hdr.code == HDN_ITEMCHANGING && phdr->pitem->cxy < 10)
    {
    *pLResult = 1; // disable change
    return TRUE; // Processed message
    }
    }
    }

    return CListView::OnChildNotify(message, wParam, lParam, pLResult);
    }

    Zum ersten möchte ich also nach Änderung die Spaltenbreiten mittels
    SaveCol... speichern. zum zweiten während der Änderung die Breite auf min.
    10 px begrenzen.
    Keine der beiden IDs wird jedoch reflektiert.
    Ich erhalte ne Menge Messages beim Debuggen, aber niemals HDN_ITEMCHANGED
    oder HDN_ITEMCHANGING.

    Was ist hier falsch? Wie kann ich sonst noch die Änderungen ermitteln?

    Danke
    Jens



  • Wer kann hier weiter helfen? Das Thema steht schon länger hier im Forum.
    @Jensx : Hast du schon eine Lösung gefunden?

    Bitte brauche dringend Hilfe !!!



  • Wo sind die Experten ???


Anmelden zum Antworten