Zum Inhalt springen

CListCtrl: Drag and Drop


Narf!

Empfohlene Beiträge

Hallo an alle Zieher und Loslasser,

ich habe für Drag and Drop in einem ListCtrl das Beispiel von codeproject genommen. Zum Nachbauen unbedingt die Kommentare lesen.

Wenn das ListCtrl in der Listen- oder Bericht-Ansicht ist, dann werden die Elemente neu angeordnet. In der Bildansicht (Icon, Minisymbol) nicht.

Es werden alle Schritte abgearbeitet, aber das gezogene Element tauscht den Platz nicht.

Müssen für Bildansichten andere Flags gesetzt werden?

Link zu diesem Kommentar
Auf anderen Seiten teilen

ggflächerlichmach: Welchen MFC-Code?

Ich fange mit OnLvnBegindragList das Beginnen des Drag-Vorganges ab und führe den Beispielcode aus. Den Beispielcode habe ich auskommentiert, sodass nur die erste Zeile

LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
und die letzte Zeile
*pResult = 0;

übrig bleiben.

Und was die Ansicht betrifft:

Mit m_cListCtrl.GetView() erhalte ich immer 0.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn das ListCtrl in der Listen- oder Bericht-Ansicht ist, dann werden die Elemente neu angeordnet. In der Bildansicht (Icon, Minisymbol) nicht.

Hm... ich hab gerade auf der CodeProjectSeite was gelesen:

If your CListCtrl includes icons, don't forget to change the "lvi.mask=LVIF_TEXT" line.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Geben mir genau die Werte zurück, die es sein sollen.

Es scheint wirklich nur daran zu liegen, dass die Elemente nicht neu angeordnet werden.

Ich habe mir mit TRACE das gezogene Element und das Element, wo eingefügt werden soll ausgeben lassen. Und das ist das Ergebnis:

Ausgehend von:

0 - Item 1

1 - Item 2

2 - Item 3

3 - Item 4

Item 1 gezogen auf Item 4 = Gezogen 0, Eingefügt 3; die obige Liste bleibt gleich.

Item 1 gezogen auf Item 4 = Gezogen 2, Eingefügt 3; die obige Liste bleibt gleich.

Es fehlt also nur das neue Anordnen der Elemente.

Und jetzt kommt mir eine Idee: In den Eigenschaften des CListCtrl-Fensters bei "Verhalten -> Automatisch Anordnen" auf TRUE setzen :upps Das wars.

Und zum Schluss: Wie bekomme ich raus, ob das ListCtrl in der Bericht- oder Symbolansicht ist? Wie schon geschrieben, mit GetView() erhalte ich immer 0.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...