Wo ist ein guter Ort, um zu starten Programmierung von GUIs für windows?[geschlossen]

StackOverflow https://stackoverflow.com/questions/4347

  •  08-06-2019
  •  | 
  •  

Frage

Ich habe Erfahrung schreiben Konsole und Netzwerk client/server-Anwendungen in C und C++, aber ich weiß fast nichts über die Verwendung von win32-visual-API, MFC, Qt, wxWidgets, etc.Wo ist ein guter Ort, um zu starten, und welche Methode sollte ich spezialisiere mich auf, damit die Zukunft bereit und robust?

War es hilfreich?

Lösung

Dies ist eine ziemlich Breite Frage, wie die Programmierung von GUI-Anwendungen in Windows getan werden kann in so viele Möglichkeiten.

Es gibt zwei wesentliche Teile der Entwicklung von GUI-app:die Sprache und die API/framework.Erwägen Sie interessiert sind zu lernen, die zum erstellen von Windows-GUI-apps, die die Sprache nicht wirklich ein Schwerpunkt für Sie.Daher sollten Sie eine Sprache auszuwählen, die Sie bereits kennen und arbeiten mit einem framework oder eine API, die genutzt werden, die von der von Ihnen gewählten Sprache.

Wenn Sie möchten, verwenden Sie C Sie sind ziemlich beschränkt, um den Umgang mit der Win32-API selbst, in dem Fall Lesen Petzold oder Richter würden die großen Plätze zu starten.Die Win32-API kann ganz schön einschüchternd sein, aber es ist die Mühe Wert, um zu lernen (imho).Es gibt viele tutorials auf Win32-über das web, und es gibt immer MSDN, mit eine komplette Referenz/Führer, um die Win32-API.Stellen Sie sicher, dass Sie decken nicht nur die API, aber auch andere Bereiche wie Ressourcen/Dialoge, wie Sie sind Bausteine für Ihre Win32-Anwendung.

Wenn Sie möchten, verwenden Sie C++, Sie haben alle Möglichkeiten, die Sie haben, wenn mit C-plus ein paar andere.Ich würde empfehlen, geht mit der Win32-API direkt, und dann bewegen auf zu einem bekannten Frameworks wie MFC, Qt, wxWindows oder GTK, so dass Sie können verbringen weniger Zeit mit boilerplate-code und konzentrieren Sie sich stattdessen auf das schreiben Ihrer Anwendung logic.Die letzten 3 Optionen, die ich gerade aufgezählt haben den Vorteil, dass Sie cross-Plattform, so dass Sie nicht haben, um sorgen zu viel über Plattform-spezifischen Themen.Da Sie sagten, Sie wollen zu arbeiten mit Windows, nehme ich an, dass Sie daran interessiert sind, sich darauf zu konzentrieren, anstatt cross-Plattform-so gehen Sie mit MFC, aber verbringen Sie einige Zeit mit der Win32-API zuerst zu erhalten vertraut mit einigen der Konzepte.

Beim Umgang mit MFC und der Win32-API, es ist eine gute Idee, zu versuchen und bekommen ein grundlegendes Verständnis der Terminologie, die vor dem schreiben von code.Für Beispiel, Sie benötigen, um zu verstehen, was die Nachricht Pumpe ist und wie es funktioniert.Sie müssen wissen, über Konzepte wie "owner-drawn - controls", und Unterklassen.Wenn Sie verstehen, dass diese Dinge (und mehr), finden Sie es einfacher, mit zu arbeiten MFC-weil es verwendet eine ähnliche Terminologie in seiner Klasse-Schnittstellen (zB.Sie müssen wissen, was "übersetzen Nachrichten" bedeutet, bevor Sie verstehen können, wie und Wann zu verwenden PreTranslateMessage).

Sie können auch Managed C++ zu schreiben .NET-GUI-Anwendungen, aber ich habe gelesen in einigen Orten, Managed C++ war nicht wirklich beabsichtigt, in dieser Weise verwendet werden.Stattdessen sollte es verwendet werden als gateway zwischen native/nicht verwalteten code und managed code.Wenn Sie Sie verwenden .NET, es ist am besten zu verwenden .NET-Sprache wie VB.NET oder C# zu bauen Ihre GUIs.

Also, wenn Sie sind verwenden .NET Sie haben derzeit die Wahl des WinForms Bibliothek, oder WPF.Ich persönlich finde, dass Sie würde Zeit verschwenden, zu lernen, zu bauen WinForms-Anwendungen gegeben, die WPF ist entworfen, um Sie zu ersetzen.Im Laufe der Zeit WPF werden mehr prevelant und Winforms wird wahrscheinlich Absterben.WPF hat eine viel reichere API-Satz, und nicht leiden viele der Einschränkungen, die Winforms funktioniert.Wenn Sie diese route wählen, aber Sie werden keinen Zweifel daran haben, zu lernen XAML,, das ist eine markup-Sprache, Antriebe WPF-Anwendungen.Diese Technologie kommt von Alter und es gibt viele großartige Orte, um mehr darüber zu erfahren.Zunächst gibt es Websites wie LearnWPF, und DrWPF die haben einige wirklich tolle Artikel.Zweitens, es gibt viel von Qualität Bücher auf der Thema.

So, to sum up, sobald Sie ausgewählt haben Ihre Sprache und tech-der Pfad ist eigentlich ganz einfach.Nehmen Sie einfach ein Buch oder zwei, lese einige blogs, in denen einige code Beispiele..und vor allem ...schreiben Sie den code.Schreiben halten, halten, Fehler zu machen, und halten aus Ihnen zu lernen.

Als ein letzter Hinweis...

In anderen Worten, Silverlight.Wenn Sie nicht wollen, zu gehen die MS route, die Sie geben könnten Adobe Flash/Flex, einen Blick sehen.Silverlight und Flash/Flex-build-RIA.Ich denke, das ist wohin wir gehen werden.Sie Tagen wie Office-apps sind nummeriert

Ich bin nicht einverstanden überhaupt.Silverlight ist nicht das gleiche wie in WPF.Silverlight ist eine web-spezifische, und nur eine Teilmenge von WPF-features.Da die Frage fragt nach Windows-GUI-Anwendungen, Flash/Flex Rich-Internet-Anwendungen sind nicht wirklich eine passende Anregung.Ich weiß auch nicht Stimmen, dass die Tage von Rich-Client-Anwendungen (wie office) nummeriert werden an alle.

Ich hoffe, das hilft.Gute Glück :)

Andere Tipps

Ich weiß nicht, wenn würde ich es nennen, ein guter Ort, um zu starten, aber wenn Sie wollen, um künftig bereit, nehmen einen Blick auf die windows presentation foundation das ist völlig für den Zweck der Programmierung von GUI ' s für windows

Meine erste Erfahrung mit dem schreiben von einfachen GUI-Anwendungen für Windows wurde mit C# und Visual Studio.Die GUI-Gebäude-Schnittstelle ist eine einfache drag-and-drop-deal generiert Skelett Methoden auf der Grundlage der möglichen Aktionen des Benutzers.Ich habe nur ziemlich grundlegende Programmierung, aber ich kann mir vorstellen, es wäre ein ausgezeichneter Ort, um zu beginnen, die Grundlagen zu erlernen, und reichen bis in die fortgeschrittene Funktionen, wie Sie gehen.

Es gibt viele online-Win32-tutorials:

http://www.zeusedit.com/forum/viewtopic.php?t=1218

Es gibt viele Compiler, zum von zu wählen:

http://www.zeusedit.com/forum/viewtopic.php?t=238

Ich würde auch empfehlen, immer die Borland Win32-SDK Dokumentation in der WinHelp-Datei format:

http://www.zeusedit.com/forum/viewtopic.php?t=7

Es deckt nur die bloßen Grundlagen des Win32, aber wenn Sie starten, kann dies hilfreich sein, da es weniger beängstigend und weniger aufgebläht als bei der MSDN.

Ich würde nie gehen Sie die Silverlight -, Flash/Flex oder einer ähnlichen route.Es sieht schön, aber das Hauptproblem ist, dass der code der Motor, der läuft, ist es völlig geschlossenen box und gesteuert durch ein einzelnes Unternehmen.Nehmen zum Beispiel 64-bit-Versionen von beiden.Wenn Sie einige neue Plattform auftaucht, werden Sie nicht in der Lage zu migrieren Ihre bereits vorhandenen code.

Für business-apps, Windows Forms ist sehr ausgereift.Es bietet einen sanften Weg von der auto-generieren eine Menge für Sie in so fein abgestufte Kontrolle und Ihre eigenen Rollen.Es gibt Tonnen von hoher-Qualität Dritte-party steuert, und eine große Menge von Beispielen, docs, usw gibt.Es ist schwer zu laufen in ein problem, dass jemand anderes hat sich nicht gelöst.Ich empfehle den Erwerb einige hintergrund-Win32-Kenntnisse (z.B. Petzold), da der WinForms-framework Leben auf top von es.

Ich habe keine WPF-Erfahrung, sondern aus den Beispiel-apps, die ich gesehen habe es sieht aus wie eine gute Wahl für apps, deren Schnittstellen profitieren würden, mehr grafische Metaphern.So, wenn Sie tun eine banking-app, wahrscheinlich nicht Wert, das zusätzliche design-overhead.Aber wenn Sie das tun, sagen wir, ein warehouse-management-app, könnte es verbessert werden, indem hübschen Boxen in hübsche Lagerplätze.

@StephenCox:falsche Antwort auf die falsche Frage.OP ist zu Fragen, über den desktop-client-apps, und darüber hinaus, WPF != Silverlight.

Für einen einfachen Ausgangspunkt, um Ihre Kopf um die "event-driven" nature grundsätzlich sind alle Rahmenbedingungen geschaffen, um Blick auf FLTK.

Hier sind einige schnelle starten von videos Link

Für den professionellen Einsatz würde ich empfehlen, Qt, teuer, aber oft lohnt es in kommerziellen Situationen.

Da Sie bereits vertraut sind mit C und C++ würde ich empfehlen, lernen wie Schreibe ich eine einfache Windows-GUI-app mit Charles Petzolds Buch.Es wird Ihnen das grundlegende Verständnis, wie Windows funktioniert.Es ist gut zu verstehen, dass die meisten alles, was Sie sehen, ist ein Fenster (eine Schaltfläche wird ein Fenster zum Beispiel) und dass diese windows auf Nachrichten Antworten.Würde ich nicht verbringen viel Zeit auf dieses, obwohl Sie nicht unbedingt müssen, tun Sie dies zuerst, wenn Sie gehen zu wählen WPF.Ich denke, es ist gut, ein grundlegendes Verständnis dieser.

Es war ein guter podcast vor kurzem auf .Net Felsen genannt "Kate Gregory Entwickelt in C++ für Vista!" dort empfiehlt Sie, dass jemand ab jetzt sollten Sie nicht verwenden/lernen, MFC - (obwohl es wurde kürzlich aktualisiert).

Soweit sich bereit für die Zukunft müssen Sie lernen, WPF, aber es ist nicht komplett, doch so, je nach Art des client-side-apps, die Sie erstellen möchten, werden Sie wahrscheinlich benötigen, um zu lernen, WinForms.Die Mehrheit der Menschen nicht mit WPF-doch, so ist es eine gute Zeit, mit dem lernen zu beginnen.Ich glaube, Sie werden es einfacher finden, mit C# zu lernen, es zu tun, anstatt managed code in C++.

Get your basics right first.Besten Tutorials, die ich gefunden habe ist: http://winprog.org/tutorial/start.html

Nach, dass, obwohl die homepage ist hatefully geschmacklos, die tutorial-Seiten sind gut in Inhalt und ästhetik: http://www.tenouk.com/cplusmfcdotnet.html

Dann gibt es natürlich die MSDN.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top