Nutzung des TaskDialog-API aus .NET-Programmen
15.07.2019, 00:00 Uhr
MessageBox 2.0
Taskdialoge sind die deutlich leistungsfähigere Alternative zur MessageBox. Per P/Invoke können auch .NET-Programme auf das Win32-API zum Aufruf der Dialoge zugreifen.
Die MessageBox-Funktion gibt es seit grauer Windows-Vorzeit. Eher grau ist auch ihr Erscheinungsbild, an dem sich über die Jahre wenig geändert hat. Das Icon können Programmierer seit Windows-95-Zeiten anpassen (MessageBoxIndirect), und eine mit Windows XP eingeführte, undokumentierte Variante (MessageBoxTimeOut) verschwindet automatisch, wenn der Anwender in der vorgegebenen Zeit keine Aktion durchführt [1]. Die MessageBox-Funktion im .NET Framework ist weitestgehend ein Abbild ihres Gegenstücks aus dem Windows-API ohne erweiterte Funktionalität.
Mit Windows Vista und Server 2008 hat Microsoft den Taskdialog eingeführt, den es in zwei Varianten gibt: Zum einen ist dies die einfache Funktion TaskDialog, die im Unterschied zur MessageBox vor allem die zusätzliche Möglichkeit bietet, den eigentlichen Nachrichtentext um einen Text in einer kleineren Schriftart zu ergänzen, wie Bild 1 zeigt [2]. Im Vergleich zur Standard-MessageBox bietet diese Variante des Taskdialogs sogar weniger Funktionalität: Enthält der Dialog mehr als eine Schaltfläche, so kann man keine andere als die ganz linke als selektierte Schaltfläche auswählen (Parameter MB_DEFBUTTON für die Standard-MessageBox). Auch bietet die Standard-MessageBox die Option, sie durch Angabe des Parameters MB_SYSTEMMODAL als TopMost, das heißt permanent im Vordergrund stehend, zu definieren.
Jetzt 1 Monat kostenlos testen!
Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
- + Digitales Kundenkonto,
- + Zugriff auf das digitale Heft,
- + Zugang zum digitalen Heftarchiv,
- + Auf Wunsch: Weekly Newsletter,
- + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar