C ++ / WIN32 Eine professionell aussehende Anwendung - ist das wirklich möglich?

8

Ich habe überall gesucht, um eine gute Lösung / einen Tipp zu finden, wie man eine Anwendung herausbringt, die das heutige Aussehen hat.

Wie wir alle wissen, bekommen wir bei der Programmierung mit Fenstern normalerweise Fenster-ähnliche Farben / Knöpfe / Listen usw. Sie sehen einfach hässlich aus.

Wenn wir entscheiden, dass wir eine Anwendung verkaufen wollen, wollen die Leute, dass sie gut aussieht - offensichtlich, weil sie dafür bezahlt haben.

Die Frage ist also:

  • Wie sieht die gute Anwendung heute aus?
  • Eigentümerzeichnung? (wirklich ??)
  • benutzerdefinierte Steuerelemente?
  • einige gute nicht-freie Bibliotheken, die die "schmutzigen" arbeiten und Ihre Anwendung "skin"?

Ich glaube nicht, dass Programmierer diese "überzeichneten" Tipps und Tricks machen, es dauert so lange, bis eine Kontrolle vollständig erledigt ist. Außerdem würde ich die Zeit lieber für die interne Anwendung ausgeben, als mit der Kontrolle herumzuspielen Zeichnung ..

Ich habe keine Ahnung, aber ich habe einen Termin und jetzt, nachdem ich all diese 'OwnerDrawed'-Kontrollen bei Google durchgegangen bin, bin ich zu dem Schluss gekommen, dass dies nicht das Ding ist. Es muss noch etwas anderes geben, wenn ein Programmierer benötigt um seine Bewerbung top-end aussehen zu lassen!.

Bitte helfen, irgendwelche Werkzeuge? Irgendwelche Tipps ? Any-irgendetwas ..?

Wenige Beispiele, wie erreichen sie diesen Look:

Ссылка

    
PeeS 16.07.2011, 13:18
quelle

9 Antworten

2

Es klingt, als ob Sie eine vollständig skinfähige App wünschen, aber nicht mehr als typische Win32-Steuerelemente. Das ist unmöglich. Aber das Enthäuten ist im Allgemeinen nicht schwierig, nur zeitaufwendiger, als Sie ausgeben möchten.

Ihr nächstes Problem ist: Sobald Sie eine enthäutete App haben, brauchen Sie einen professionellen Grafikdesigner , um eine gute Haut zu entwickeln. Zu viele kleine Projektentwickler denken, dass sie ihre eigene Haut machen können, aber es sieht fast immer schrecklich aus. Dieser sexy professionelle Look, den Sie wollen, ist ohne einen Design-Experten unmöglich.

Und schließlich, was auch immer Sie für eine ausgefallene benutzerdefinierte Skin verwenden, die Funktionalität muss wahrscheinlich benutzerdefiniert sein. Das heißt, wenn Sie nicht rechteckige Steuerelemente oder Animationen verwenden möchten, müssen Sie sich die Zeit nehmen, diese zu entwickeln.

Die Verwendung eines Toolkits wie Qt kann eine gute Investition sein. Aber das ist die Art von Details, die eine Menge Aufwand erfordert, egal wie Sie es schneiden.

Etwas neben dem Punkt: Von einem Benutzeroberflächen-Experten richtig entworfen, neigen die Standard-Windows-Steuerelemente dazu, sehr professionell auszusehen. Es gibt so viele Vorteile bei der Verwendung von nativen Windows-Steuerelementen, Sie sollten wirklich gründlich überlegen, bevor Sie versuchen, das Rad neu zu erfinden:

  1. Eingabehilfen wie Tastaturnavigation, Bildschirmleser, hoher Kontrast. Werden Sie wirklich alle Barrierefreiheitsfunktionen, die Windows mit den Steuerelementen bereitstellt, neu erfinden? Oder lohnt es sich, behinderte Menschen von der Verwendung Ihrer App auszuschließen, nur damit Sie eine Skin verwenden können (ganz zu schweigen von den nicht behinderten Menschen, die Barrierefreiheitsfunktionen verwenden)?
  2. Größenanpassung. Bedeutet Ihr Skin, die Größenänderung Ihres Fensters zu deaktivieren? Wieder, ist das das wert?
  3. Manche Dinge können nicht gut gehäutet werden. Zum Beispiel Bildlaufleisten und Menüs. Einige Entwickler erfinden sie neu (Scrollbalken sind besonders schwierig neu zu erfinden), andere lassen sie einfach unhacked.
  4. Windows-Design Windows Theming ist nicht nur die Farbe Ihres Startmenüs; Es sollte das Aussehen Ihres gesamten Betriebssystems diktieren. Mithilfe von Standard-Windows-Steuerelementen können Benutzer einen integrierten Mechanismus zum Auswählen des Erscheinungsbilds verwenden.
tenfour 16.07.2011 14:11
quelle
1

Wahrscheinlich gibt es in dieser Anwendung kein einziges Steuerelement.

Stattdessen wird das Ganze als Bild wiedergegeben. Es gibt ein Hintergrundbild und einige Overlay-Bilder (meist transparent), um Mouseover-Hervorhebungen, deaktivierte Steuerelemente usw. bereitzustellen. Das einzige, was nicht vorgerendert wird, sind die aktuellen Track- und Playlist-Informationen, die reiner Text mit einer bestimmten Schriftart sind. p>

Treffertests können mit einem weiteren Bild durchgeführt werden.

Der Programmierer tut praktisch nichts, um das ausgefallene Design zu implementieren, es wird alles von einem Künstler gemacht (und Programme wie Photoshop unterstützen Ebenen im Editor, was es sehr einfach macht, alle Überlagerungen zu konstruieren).

Der Nachteil ist natürlich, dass Tasten nicht genau wie normale Win32-Tasten funktionieren. Sie unterstützen nicht den Tastaturfokus (obwohl es wahrscheinlich Hotkeys gibt) und aktivieren sie einfach auf MouseUp. Und die Zugänglichkeit ist entsetzlich, es gibt keine Informationen für einen Bildschirmleser, und die Anwendung berücksichtigt die Einstellungen für die Systemschriftgröße nicht. Um die Benutzeroberfläche für Menschen mit Sehschwäche lesbar zu machen, ist eine völlig andere Haut erforderlich.

    
Ben Voigt 16.07.2011 14:06
quelle
1

Das C ++ Team hat ein Beispiel namens Hilo zusammengestellt (wie der Ort in Hawaii), das keine Frameworks verwendet (kein ATL , keine MFC) und ist alles native Code. Es verwendet eine Reihe von Windows 7-Funktionen und einige reizvolle Grafiken und Animationen. Der gesamte Code und das Design sind verfügbar und dokumentiert. Schau es dir an.

    
Kate Gregory 16.07.2011 14:07
quelle
1

Wenn Sie unter die Abdeckungen einer bestimmten App graben möchten, können Sie ein Spy Utility starten und sehen, wie viele Steuerelemente in eine Schnittstelle unterteilt wurden:

Ich möchte Spy ++, aber ich habe kein Visual Studio

Gibt es ein Spy ++ ähnliches Dienstprogramm für WPF?

Zum Beispiel ... das Ausspähen in Windows Media Player im enthäuteten Modus findet, dass es eine Fensterklasse namens WMP Skin Host gibt, und Sie sehen, dass es zero untergeordnete Fenster hat. (Der normale Modus ohne Haut ist in einige Listenfelder und Schaltflächen unterteilt.)

Nach meiner Erfahrung ist "modernes" Skinning im Allgemeinen eine Katastrophe, wenn die Leute zu viel umsetzen, um "cool" auszusehen. Es behindert beide Automatisierungen (durch Dinge wie AutoIt ), ganz zu schweigen von Barrierefreiheit für Behinderte. Was heute cool aussieht, wird nicht aktuell bleiben, wenn Sie keine theme-basierte API verwenden.

(Hinweis: Da ich generell ein Fan von Qt bin, würde ich vorschlagen, in die QStyle und QStylePainter . Aber das ist mehr" Theming "als" Skinning ".)

Ich würde sehr vorsichtig sein, Skinning in einer App zu verwenden, es sei denn, ich habe herausgefunden, dass ich für einen Markt entwickle, der es absolut erfordert (wie Musik-Player).

    
HostileFork 16.07.2011 14:07
quelle
0

Normalerweise können Sie benutzerdefinierte Steuerelemente mit GDI (+) Rendering rendern.

    
Puppy 16.07.2011 13:49
quelle
0

Wenn es Ihnen nichts ausmacht, in C ++ / CLI zu gelangen, gibt es WPF, es bietet ziemlich umfassende Kontrolle über benutzerdefinierte Stile und Vorlagen.

    
PeskyGnat 16.07.2011 13:52
quelle
0

Vielleicht möchten Sie sich SkinCrafter genauer ansehen. Es ist reif, stabil und sehr flexibel. Ich benutze es nicht mehr, aber meine Erfahrung damit war sehr angenehm.

    
Captain Obvlious 16.07.2011 14:02
quelle
0

Sie können externe Layout-Engines verwenden, eines davon ist HTMLayout von terra informatica, hier wird auch professionelle Software verwendet.

    
user1064504 22.03.2014 17:31
quelle