[C++] Wie kann ich den Style eines Steuerelementes nachträglich ändern?

WhiteGandalf

Mitglied
Hi zusammen!

Vorweg: Benutze Visual C++ 6.0 und WinXP
Mein Problem ist folgendes: Man kann ja beim Erstellen eines Dialoges (mittels dem Assistenten) jedem erstellten Steuerelement bestimmte Eigenschaften/Formate geben, wie zB einer Listbox das Format "Sortieren". Nun soll "Sortieren" zu Begin allerdings nicht aktiviert sein, sondern erst bei dem Anklicken einer Checkbox aktiviert werden, d.h. mittels einer Checkbox soll der Benutzer einstellen können, ob die Listbox das Format "Sortieren" verwendet oder nicht. Wie bekomme ich das hin? Ich nehme an, ich muss eine Nachricht an die Listbox mit SendMessage schicken, aber wie soll das genau aussehen?

Danke im Vorraus und mfg WhiteGandalf
 
Das geht unter MFC mit ModifyStyle bzw. ModifyStyleEx. Unter Win32 musst du mit SetWindowLong und GetWindowLong arbeiten.

Denk dran, dass das Umschalten der Sortierung auf die bereits eingesetzten Items keine Auswirkung hat.
 
Keine Auswirkungen? Und wenn ich die Listbox mittels UpdateWindow update, werden die Einträge dann auch nicht neu sortiert?
(Wie soll ich dann meine oben beschriebene Checkbox realisieren?)
 
z.B.: Alte Listbox destroyen, neue Listbox mit dem gewünschten Style erzeugen...
oder, 2 Listboxen übereinander zeichnen, einen mit LBS_SORT, eine ohne. Und immer die hiden, die man gerade nciht braucht...

btw, laut MSDN gehört LBS_SORT zu den Styles die nicht geändert werden können nachdem das Control einmal initialisiert wurde.
 
Zurück