Nichts außer dies ist ein Vista Feature
UPDATE: Diese probem mit nebeneinander Baugruppen zu tun hatten: diese Funktionen sind nur in comctl32.dll Version 6, aber aus Kompatibilitätsgründen wird Vista laden eine frühere Version, es sei denn, Sie sagen es anders. Der Ansatz, den die meisten Menschen (einschließlich mir) gewählt haben, besteht darin, ein Manifest zu verwenden. Dies hat sich als schwierig erwiesen und ist möglicherweise nicht die richtige Lösung, insbesondere wenn Sie eine Bibliothek schreiben: Sie müssen nicht unbedingt die gesamte Anwendung zwingen, allgemeine Steuerelemente zu verwenden.
Das Recht Die Lösung besteht darin, einen new activation Kontext beim Aufruf einer der Vista-only APIs zu pushen. Der Aktivierungskontext verwendet die richtige Version von comctl32.dll, während der Rest der Anwendung allein gelassen wird und kein Manifest erforderlich ist.
Glücklicherweise ist dies einfach zu tun.Einiger vollständiger Code, der bereits existiert MS Knowledgebase. Der Code aus dem Artikel (KB 830033) funktioniert so wie er ist.
Alternative Managed API: Eine vollständige Wrapper für Vista Taskdialog & TaskDialogIndirect hier gefunden werden kann:
http://code.msdn.microsoft.com/WindowsAPICodePack
Für WPF verwenden die folgenden:
Laden Sie die 'VistaBridge Sample Library' von http://code.msdn.microsoft.com/VistaBridge Einmal heruntergeladen, öffnen Sie das Projekt und bauen Sie es dann auf (wenn Sie den gesamten Code durchsehen möchten, untersuchen Sie die Dateien in den Ordnern \ Library oder \ Interop). Sie können jetzt die DLL von VistaBridge \ bin \ debug \ nehmen und in Ihrem Projekt einen Verweis darauf hinzufügen. Außerdem müssen Sie eine using-Anweisung für jedes der verschiedenen VistaBridge-Module hinzufügen. Beispiel:
mit Microsoft.SDK.Samples.VistaBridge.Interop oder .Library oder .Properties oder .Services - Abhängig von Ihren Anforderungen.
Das VistaBridge Projekt umfasst API für viele anderen Vista-Features (wie zB den Taskdialog, Vista und Openfile Savefile Dialoge, und natürlich die Aero Glass Effekte) diese aus, um zu versuchen, das VistaBridge Projekt.
Das wurde in Win7 entfernt? –
Danke, ich werde mich darum kümmern. – Vivelin
VistaBridge wurde zum Windows API Code Pack. –