2010-12-27 16 views
3

Wenn Sie jemals eine Anwendung in der Adobe Creative Suite 5 (CS5) gesehen haben, haben Sie vielleicht bemerkt, dass es nicht wie die native Windows GUI aussieht. Sie haben es geändert, um ein anderes Aussehen zu haben zu ihm.Skinning WinAPI Controls

Wo würde jemand anfangen, eine Anwendung zu erstellen, die eine benutzerdefinierte Haut hat? CS5 verwendet die Adobe Source-Bibliothek für seine Widget-/Steuerungsverwaltung. Daher habe ich versucht, die Adobe-Quellbibliothek herunterzuladen und zu kompilieren, um zu sehen, ob ich eine schöne Anwendung wie Photoshop CS5 erstellen kann Die Bibliothek war nur zum Verwalten von Widgets und nicht zum Enthäuten der GUI wie CS5.

Wo würde ich anfangen, ein schönes Programm wie Adobe Cs5-Anwendungen zu erstellen? Kann mir jemand in die richtige Richtung zeigen?

Kann ich einfach die WM_PAINT Nachricht von WinAPI verwenden und meine eigenen Widgets mit openGL oder etwas rendern?

+0

Viele Programme in Adobe Creative Suite verwenden benutzerdefinierte Steuerelementbibliotheken anstelle der Standardsteuerelemente, die von der Windows-API bereitgestellt werden. Es ist nicht einfach, die vorhandenen Steuerelemente zu überdecken. –

Antwort

1

Verwenden Sie QT und QML. Es hat keine steile Lernkurve. Sie definieren Ihre GUI mit JavaScript und fügen viele Effekte hinzu und nutzen PNGs in jeder denkbaren Sache. Dann machen Sie Ihre Anwendungslogik mit C++. In der Tat können Sie einige ziemlich fortgeschrittene Dinge außer UI mit QML tun, aber es ist besser, Bedenken wie immer zu trennen.

Ich verwende es bei der Arbeit für ein Produkt freigegeben werden. Das Überschreiben von WM_PAINT ist nicht die einzige Möglichkeit in Windows, aber ich empfehle QT anstelle von Win32 API, wenn es um benutzerdefiniertes UI geht. Zumindest nach meiner Erfahrung ist es viel einfacher als meine Abenteuer mit Win32 API.

0

Wenn Sie benutzerdefinierte Steuerelemente selbst implementieren möchten, müssen Sie eigene WM_PAINT implementieren und mit GDI/GDI + zeichnen. Für Toplevel-Fenster und Popups können Sie Layered windows verwenden. Aber ich denke, Sie können viele professionelle benutzerdefinierte Kontrollen über das Internet zu einem vernünftigen Preis finden, wenn Sie nicht selbst implementieren möchten.

0

Ich denke, Ihre Entscheidungen zur Erstellung einer modernen gehäuteten App sind: oder WPF (über C++/CLI).

0

Wenn Sie eine vorhandene Win32-API-Anwendung haben und sie nicht mit einer Bibliothek neu schreiben möchten, die Skinning unterstützt, können Sie sich die Datei Stardock DirectSkin ansehen.

Wenn Sie beschließen, Ihre Anwendung neu zu schreiben, würde ich auch Qt empfehlen. Guitar Pro 6 wurde mit Qt umgeschrieben, lesen Sie mehr über ihre Erfahrung here.

+0

Aktualisierter Link für den Blogeintrag von Guitar Pro 6: http://blog.qt.digia.com/blog/2010/06/17/how-qt-can-turn-you-into-a-guitar-maestro/ –