[gelöst] CTreeCtrl Anzeige-Problem



  • Hallo, ich habe mit seltsamen Effekten im CTreeCtrl zu kämpfen.
    Unter verschiedenen Knoten sollen Dateien unterschiedlichen Typs angezeigt werden.
    Ich habe eine beliebige Datei mit Namen "01-Name.xyz" und zwei relativ baugleiche Rechner, jeweils mit WinXP. Auf einem wird korrekterweise "01-Name.xyz" im TreeCtrl angezeigt, auf dem anderen "Name.xyz-01". Klickt man auf den Namen um diesen editierbar zu machen, wirds wieder richtig angezeigt bis der Editiermodus verlassen wird. Dann ist es wieder verdreht.
    Worann liegt das?

    Edit: Wenn ich das Item mit GetItemText() abfrage erhalte ich komischerweise trotzdem wieder den richtigen Namen "01-Name.xyz".

    Edit2: Wenn ich direkt bevor ich das Item einfüge den String (LPCTSTR) mit ner MessageBox ausgebe, wird der richtige Name ("01-Name.xyz") ausgegeben



  • Das selbe Problem habe ich nun auch auf nem Windows 7 Ultimate-Rechner festgestellt.
    Kann mir jemand sagen, warum auf einigen Rechnern der String (Dateiname) in der TreeCtrl zerhackt und falsch dargestellt wird?

    Edit:
    Das Problem tritt auf, wenn der Dateiname wie folgt aussieht:

    Zahl + Trennzeichen(- _ .) + name + endung

    Angezeigt wird dann: name + endung + trennzeichen + zahl

    Edit2 Lösung:
    Habe nun rausgefunden, dass das WM_NOTIFY beim Create-Aufruf Schuld war. Eigentlich dachte ich, ich brauche WM_NOTIFY für TVN_SELCHANGED, TVN_KEYDOWN und NM_DBLCLK. Aber die Messagehandler funktionieren komischerweise trotzdem.
    Habe ich schon erwähnt, dass es ein MFC-Next-Projekt ist. Bevor ich das Projekt auf MFC-Next umgestellt habe, war das kein Problem.
    Warum das aber trotzdem auf einigen Rechnern ein Problem war, auf anderen aber nicht, weiss nur der Teufel. 😡


Anmelden zum Antworten