Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Helmut

5x Contest-Sieger

  • »Helmut« ist der Autor dieses Themas

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

1

24.02.2008, 13:59

MessageBox mit mehr Funktionen (TaskDialogIndirect)

Hallo!

Wie viele von euch sicher schon bemerkt haben gibt es unter Windows Vista viel weniger Messageboxen, sondern richtige Antwortmöglichkeiten wie "Nicht speichern" oder "Prozess beenden". Das liegt nicht daran, dass man aufwändig für jeden Dialog eine Resource + Prozedur eingebaut hat, sondern an der neuen API TaskDialog(Indirect). Das sind nur zwei Funktionen, die zwar etwas komplizierter als MessageBox sind, dafür aber viel mehr Features haben. (Z.B. eine "Zeig mich nie wieder Checkbox", Progressbars, Links...)

Hier ein Bild mit den Textelementen eines TaskDialogs:

(Link)


Wie dem auch sei, wenn man die Funktion nun selber benutzt, kann man das Programm nicht mehr auf XP und darunter starten, weil es dort diese Funktion natürlich noch nicht gibt. Deshalb habe ich kurzerhand (gut, hat schon länger gedauert) eine Wrapperfunktion gebastelt, welche unter Vista den TaskDialog aufruft, und sonst selber einen Dialog bastelt (Die Screenshots oben zeigen, was diese Wrapperfunktion unter den verschiedenen OS produziert).

Diese Wrapperfunktion (nur eine .cpp und .h ) und Links zu Tutorials, was man mit Taskdialogen alles zaubern kann, findet ihr hier;)

Damit sollte es nun eigentlich keinen Grund mehr geben, überfüllte MessageBoxen zu benutzen...

Ciao
Helmut
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

2

24.02.2008, 15:39

Hey, das ist ja mal cool!
Vielen dank. Ich werd das ab jetzt statt MessageBoxen benutzen!
Das Böse ist des Menschensbeste Kraft - Friedrich Nietzsche