Hallo, um vielleicht einmal gut Windows-Programme programmieren zu können, würde ich gerne bei den Grundlagen anfangen. In der Eingabeaufforderung textbasierte Programme in Python, C, Java,... zu schreiben ist zwar gut zum Üben, aber ich würde gerne mal in die Programmierung eines GUIs einsteigen. Habt ihr vielleicht Empfehlungen Bücher betreffend? Denn ich würde gerne auch die Grundlagen dahinter verstehen und nicht nur irgendwas irgendwie aus fertigem Code zusammenschnipseln. Am besten eine "traditionelle" Art für das Erzeugen eines GUIs, die selbst auf Windows XP noch laufen würde.. Danke! Pascal
Wenn du ein Fenster mal zum Spaß "zu Fuß" direkt via WinAPI erzeugen willst: http://www.winprog.org/tutorial/start.html http://www.win-api.de/tutorials.php
bluppdidupp schrieb: > Wenn du ein Fenster mal zum Spaß "zu Fuß" direkt via WinAPI > erzeugen willst: > http://www.winprog.org/tutorial/start.html > http://www.win-api.de/tutorials.php Danke! Ein Fenster ist immer ein guter Anfang :-)
Sich die WINAPI anzueignen ist in meinen Augen reine Zeitverschwendung. Das ist ungefähr so als würdest du gerne Apps programmieren und fängst mit Nokia OS an. GUI Frameworks sind einfach keine Standardbibliotheken. Schlimmstenfalls nimmst du dann auch noch Design-Patterns auf die vor 20 Jahren vielleicht grad aktuell waren... Ich würd doch zu was modernerem Raten, beispielsweise Qt. Sollte dich nach den ersten Schritten tatsächlich noch interessieren "was hinter läuft", dann kannst du dir das jederzeit ansehn. In der Praxis ist Wissen rund ums Framework aber wesentlich wichtiger als zu wissen wie ein Widget das 10. Pixel in der 182 Zeile anspricht. :D
"Klassiker" zur Windows-API: - Windows-Programmierung, 5. Auflage, Charles Petzold Hauptsächlich GUI, ist aber ein Klopper. Vorsicht: In der darauf folgenden Edition geht es um C# und .NET. - Microsoft Windows Programmierung für Experten, Jeffrey M. Richter bzw. etwas neuer "Windows via C/C++", 5. Auflage. Windows-API generell, nichts/wenig zu GUI-Themen. Beide alt, aber das meiste, was Win32 betrifft, funktioniert noch immer wie darin beschrieben (logisch, sonst würde ältere Software ja unter Windows 10 nicht mehr laufen); allerdings kommen "neuere" Erweiterungen natürlich nicht darin vor. - Windows Internals 1, 6. Auflage & Windows Internals 2, 7. Auflage Ziemlich neu (1 von 2017), sehr detaillierte Beschreibungen von Konzepten, aber nichts/wenig zu GUI-Themen. --- - Windows Programming With C++ (Nitty Gritty), Henning Hansen bzw. "Windows-Programmierung mit C++" Hauptsächlich GUI, knapper gefasst als das Buch von Charles Petzold, eher eine Art langes Tutorial. Vielleicht nicht schlecht für deine Zwecke. Habe ich auch online zum Lesen gefunden, weiß aber nicht, ob das Angebot legal ist. - C++ Windows Programming - Develop real-world applications in Windows, 2016, Stefan Björnander Darin geht es hauptsächlich um die Verwendung und teilw. Implementierung eines C++-Wrappers um die Windows-API ("Small Windows"). https://github.com/PacktPublishing/Cpp-Windows-Programming --- > Am besten eine "traditionelle" Art für das Erzeugen eines GUIs, die > selbst auf Windows XP noch laufen würde.. Ein paar Hintergründe zu kennen, halte ich durchaus für sinnvoll. Die Frage ist natürlich, ob heutzutage das Durcharbeiten einer dicken Schwarte zu diesem Thema empfehlenswert ist (mal ganz abgesehen davon, dass man einige der Bücher nicht mehr bekommt - und wenn doch, dann selbst gebraucht vermutlich oft überteuert) ... Ich würde da eher ein paar Web-Tutorials oder vielleicht noch das kurz gehaltene Buch von Henning Hansen empfehlen. Du musst natürlich beachten, dass in alten Büchern/Tutorials ältere Versionen von Visual Studio gezeigt werden, z.B. VS 6. In den nachfolgenden Express-Versionen war der Ressourcen-Editor nicht enthalten (nur ab VS Pro), glaube ich, aber in den neueren Community-Versionen von VS ist er dabei. Es gibt aber auch so etwas (nicht von "Hacker" irritieren lassen, das ist einfach ein Ressourcen-Editor): http://www.angusj.com/resourcehacker/ Du kannst natürlich auch "stilecht" in Notepad++, Vim o.ä. und der Kommandozeile arbeiten. Ohne VS brauchst du zumindest die Build-Tools (Compiler, Linker, SDK, ...): http://landinghub.visualstudio.com/visual-cpp-build-tools
Sagt ja keiner das du die Fenster ab CreateWindowEx selbst aufbauen musst. Auch in Windows gibts Resourcenbasierende Dialoge mit CreateDialog, was dir die ganzen CreateWindowEx-Aufrufe abnimmt. BitmapResourcen inklusive. ResEdit nehm ich gern dafür. Windows unterstützt da einiges von Haus aus. Eigene funktionelle Controls sind möglich. In DialogBoxen auf Resourcenbasis kannste allerdings auch ownerdrawn-Controls benutzen. Die passenden Nachrichten bringen sie mit. Setz dich mit dem MessageLoop auseinander. Alles andere haben die anderen ja schon anhand von Quellen geliefert. Und man muss nicht immer ein Framework benutzen. Gruß Dennis
Pascal schrieb: > Programmierung eines GUI Da braucht es nicht wirklich ein Buch. Wenn man Visual Studio nutzt ist es selbsterklärend, die GUI mit dem Visual Basic Forms Editor zusammenzuklicken, der Code für die Events wird automatisch erzeugt. Tutorials und Beispiele für praktisch alles gibt es online. Wenn es dann noch Berechnungen oder Kommunikation gibt, kann man auch mit Basic machen, oder eben in C# kommt ja auf das selbe raus: https://de.wikipedia.org/wiki/Common_Intermediate_Language
helluo librorum schrieb: > "Klassiker" zur Windows-API: Vielen Dank! Genau nach so etwas habe ich gesucht : )
Mit einer modernen GUI Tool, wie Delphi, muss man nur noch zusammenclicken. Das sind alle muehsamen Details in Komponenten verborgen.
Lothar schrieb: > Pascal schrieb: >> Programmierung eines GUI > ...Wenn man Visual Studio nutzt ist > es selbsterklärend, die GUI mit dem Visual Basic Forms Editor > zusammenzuklicken, der Code für die Events wird automatisch erzeugt. ... Und wie macht man das? Ein kleines Beispiel wäre gerne gewünscht.
keen jlaskujel schrieb: > Und wie macht man das? Ein kleines Beispiel wäre gerne gewünscht. http://www.visual-basic-tutorials.com/Tutorials/Controls/index.htm http://www.visual-basic-tutorials.com/Tutorials/Controls/Button.html http://www.visual-basic-tutorials.com/Tutorials/Controls/Timer.htm http://www.visual-basic-tutorials.com/Tutorials/Controls/SerialPort.html http://www.visual-basic-tutorials.com/display-data-as-charts-and-graph-in-visual-basic.html
C# WPF https://docs.microsoft.com/de-de/dotnet/framework/wpf/getting-started/introduction-to-wpf-in-vs http://www.wpf-tutorial.com/ C# UWP https://docs.microsoft.com/de-de/windows/uwp/get-started/create-a-hello-world-app-xaml-universal
keen jlaskujel schrieb: > Und wie macht man das? Ein kleines Beispiel wäre gerne gewünscht. Such dir halt irgendwas bei YT raus, z.B. das hier https://www.youtube.com/watch?v=tcmmCcMs8yU . Ich bin absoluter Microsoft-Hasser, musste damit aber im Studium arbeiten und muss zugeben, dass man damit ziemlich gut arbeiten kann. Ob es auf Windows XP noch läuft weiß ich nicht und ob es "tradionell" ist weiß ich auch nicht, aber insbesondere wenn dir Buttons, Dropdownmenus, Textboxes und co. nicht reichen, lohnt sich ein Blick auf https://processing.org/ https://processing.org/reference/libraries/#gui
:
Bearbeitet durch User
Qt mit C++ ist nett und wäre mein Ansatz, soll es retro werden, dann Java.
Ich würde dir auf jeden Fall empfehlen dich nicht auf alte Technologien zu versteifen. Die Welt entwickelt sich immer schneller und du solltest deine kostbare Zeit lieber in etwas wertbeständigeres investieren. Schau dir aktuelle Frameworks an und vergiss Windows XP, das nutzt heutzutage kein vorwiegend vernünftiger Mensch mehr. Konzentrier dich lieber auf plattformübergreifende Technologien. https://de.wikipedia.org/wiki/Liste_von_GUI-Bibliotheken Die Win32-API ist veraltet, wird nicht mehr weiterentwickelt, hat begrenzte Möglichkeiten und es ist komplex. Letztendlich willst du mit GUI-Programmierung bzw. Programmierung allgemein ja auch mal irgendwann produktiv Aufgaben erfüllen und nicht deine Zeit mit veralteten und mühsahmen Programmiertechniken vergeuden.
Die WinAPI ist nicht veraltet. Es handelt sich nach wie vor um das Standardprogrammierinterface für Windows-Programme. Das Konzept der Fenster und Nachrichten ist unter Windows nicht obsolet. Die WinAPI beschränkt sich nicht nur auf Fensterprogrammierung, da wären noch noch Betriebssystemfunktionen, Multithreading, Multimediafunktionen etc.
Dennis H. schrieb: > Es handelt sich nach wie vor um das Standardprogrammierinterface für > Windows-Programme. Das ist aber nur die halbe Wahrheit, was ist mit der neuen UWP? Was ist mit WPF? Und nur weil es der in Windows eingebaute Standard ist, warum soll das der Grund sein, warum man überlegene Technologien nicht nutzen sollte? > Das Konzept der Fenster und Nachrichten ist unter Windows nicht obsolet. Das Argument, das du hier zu widerlegen versuchst, wurde doch gar nicht genannt? > Die WinAPI beschränkt sich nicht nur auf Fensterprogrammierung, da wären > noch noch Betriebssystemfunktionen, Multithreading, Multimediafunktionen > etc. Ja. Aber auch das ist nicht das Thema. Dem TO ging es nur um GUI-Programmierung. Noch ein weiterer Denkanstoß: Was passiert, wenn MS in ein paar Jahren beschließt, ein neues, schlankes OS auf den Markt zu bringen, welches nur noch die UWP unterstützt und keine Altlasten mehr mit sich herumträgt? Durchaus denkbar.
:
Bearbeitet durch User
Erfolgskonzepte wie MFC und ATL bestätigen die regelmäßigen Umstürze der Programmierschnittstellen in Windows. GetMessage läuft seit Win16 bis hin zu Win64. .NET mit seinem Framework ist ein schöner Ansatz der nicht so schnell in der Versenkung verschwindet wird. Es basiert aber auf einer VM. So ein Grafikframework ala Gnome und WPL und wie sie alle heißen ist schon angenehm, nur sollte man die grundlegenden Möglichkeiten kennen. Manchmal kommt es vor das an so einem Framework der Entwickler das Interesse verliert.
Ich möchts mal etwas pragmatisch und überspitzt formulieren: "Windows-GUI-Programmierung" ist effektiv tot. Wer sich heute noch ernsthaft mit WinAPI, Ressourceneditor und MFC herumschlägt, ist selbst schuld. Kann man natürlich machen, Microsoft wird diese Ruinen sicherlich noch die nächsten zehn Jahre mit herumschleppen. Machts aber net besser. Nimm Qt oder Gtkmm oder sonst ein etabliertes Framework und investier deine Zeit lieber in sinnvollere Dinge.
Hi, auf keinen Fall die WinAPI, da muss man ja allein zum simplen Erzeugen eines funktionierendes Fensters Code mit einer Zeilenanzahl im dreistelligen Bereich schreiben, überleg mal, wie viele das werden, wenn du mal eine "richtige" Anwendung programmierst. Ich würde auch Qt nehmen, ich verwende es des öfteren hobbymäßig um eine GUI für meine Konsolenprogramme zu erstellen, das geht mit Qt ratzfatz. Gruß Ivo
Hallo, wie ich lese haben die meisten hier eher Framworks am laufen. Ich selber arbeite nicht mit C und co. Daher habe ich diesbezüglich auch keine aaaanung. Aber ohne API wissen hast du ja keine Ideen was so alles geht und was nicht. Und schlussendlich fussen alle Frameworks auf der API. Den es schreibt ja niemand die Funktionen neu. Frameworks machen das leben einfacher wenn man weis wie diese Funktionieren. Das anpassen an eigenen Ideen und wünsche gestaltet sich dann schon schwieriger. Aber wehe es Funktioniert etwas nicht, oder das Framework kommt mit dem nächsten Windows Patsch mal wider nicht zurecht. Also ich bevorzuge die MS API Seite. https://msdn.microsoft.com/en-us/library/windows/desktop/ff818516(v=vs.85).aspx dort findest du alles was du brauchst.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.