Meinung zu Projekt gefragt, und MFC oder WinAPI direkt? Danke
-
Vielen Dank für die vielen Ratschläge und die guten Links. Also, ich bin nicht im Besitz von visual studio oder so. (nur express c#, das man gratis benutzen kann). Ich programmier mit der IDE Dev-C++ und bin soweit auch zufrieden. Ich habe das Buch von Charles Petzold gekauft, namens "Windows Programming, Fifth Version". Traurigerweise wird hier nicht erklärt, wie ich mit c/c++ eine Textbox erstelle, und da Texteinfügen bzw. bearbeiten kann. Ich bin enttäuscht von diesem Buch, da es nicht bietet was ich eigentlich gerne gehabt hätte. Ich möchte nämlich (einfache) Dialoge kreiern mit ein paar Buttons, Grafiken, etc. Dafür sollte es aber sowas wie LoadBitmap oder so geben.
Kann mir wer ein Buch empfehlen, dass mir das beibringt? Wunschsprache wäre C, kann aber auch C++ sein. Danke
bye bye.
-
CyberDot schrieb:
Ich habe das Buch von Charles Petzold gekauft, namens "Windows Programming, Fifth Version". Traurigerweise wird hier nicht erklärt, wie ich mit c/c++ eine Textbox erstelle, und da Texteinfügen bzw. bearbeiten kann. Ich bin enttäuscht von diesem Buch, da es nicht bietet was ich eigentlich gerne gehabt hätte. Ich möchte nämlich (einfache) Dialoge kreiern mit ein paar Buttons, Grafiken, etc. Dafür sollte es aber sowas wie LoadBitmap oder so geben.
Sei nicht böse, aber lies besser noch mal nach. Soweit ich mich erinnern kann, wird Textbox gleich am Beginn behandelt, Buttons ebenfalls.
-
Hallo Christoph,
Danke für den Hinweis. Zu meinem Glück habe ich etwas gefunde, aber es wurde erst später behandelt. Möglicherweise liegt es an den Buchversionen? ich besitze die 5. Version. Es sind auch "Killerbeispiele" und sehr schwer nachvollziehbar WIESO es funktioniert. Wenn jemand ein Buch hat, das mich in das Thema einführt, wäre ich sehr dankbar.
Vielen Dank.
CyberDot
-
Ich erachte den Petzold als sehr gutes Buch darum habe ich mir mal die Mühe gemacht:
alle Angaben beziehen sich auf die 5. Auflage:S. 466 ff: Dialoge (mit 2 sehr einfachen Beispielen)
S 377 ff: Editfenster (um deine Kritik zu widerlegen: Text einfügen und bearbeiten wird dort (S. 381) vollständig erklärt!)
S. 339f: sehr ausführliches Kapitel über Buttonsund Teil III des Buches heißt sogar: Noch mehr Grafik!
Und gerade das WIESO wird sehr gut behandelt, für noch detaillierte Informationen musst du sowieso die msdn verwenden.
-
Die Leute werden immer bequemer. Daher hat C++ auf Dauer keine guten Chancen im GUI-Bereich, wenn keine einfache, standardisierte und plattformübergreifende GUI dazu kommt.
-
Hallo
Soll das im neuen Standard eventuell angeboten werden?
chrische
-
Es wird im C++-Standard keine GUI geben! Warum wird von gestandenen C++lern immer wieder dieses Thema vorgekramt, wenn man die Antwort schon kennt? Wer GUI machen will, kann sich eine der zahllosen GUIs auf dem Markt bedienen. Sind auch viele kostenlose und gute dabei.
Und wer meint, eine GUI-Editor (wie der Qt-Builder, wxFormbuilder u.a.) sei zu schwierig zu bedienen, sollte das Programmieren sein lassen.
Wer generell was gegen GUI & C++ in Kombination hat, soll halt Java oder C# machen. Wir leben in einer freien Programmierwelt.
-
Hallo
Ich kannte die Antwort noch nicht und weiß auch nicht, warum die bereits vorhandenen GUI ein Grund dafür sein sollen keine neue im Standard aufzunehmen.
chrische
-
Es ist ein offizielles Statement des C++ Komitees, das es keine GUI geben wird. Warum? Weil es nur ein Kompromiss wäre. Wie soll man die UI-Konzepte von MacOS, Windows, Gnome u.a. GUI-Systemen in einen C++-Standard unterbringen? Das wird nie im leben funktionieren. Es wäre nur ein Kompromiss möglich. Und dann? Dann würde ihn niemand benutzen, weil Feature A und Feature F fehlt. Und dann wäre man wieder nicht platformneutral. Das sieht man sehr gut and Swing: obwohl es in der Basis-Runtime dabei ist, gibt es andere GUI-Libs (z.B. SWT), weil Swing auch nur ein Kompromiss für viele ist.
Weiterhin: welche andere ISO-normierte Sprache hat denn eine GUI? Ich kenne keine. Java ist nicht normiert. WindowsForms und WPF auch nicht. Das sind alles Hersteller-GUIs, die sie nicht rausrücken. Auch Swing ist nicht frei, es ist Copyrighted by SUN. Alle wollen im C++-Standard (werdet euch über diesen Begriff bewusst!) eine GUI, weil andere Sprachen auch eine GUI haben. Aber die anderen sind nur Sprachen, die einem Hersteller gehören und nicht einem ISO-Standard unterliegen. C# unterliegt mittlerweile ISO, hat aber auch keine GUI, genausowenig wie CLI.
Wisst ihr wann der Vergleich nicht mehr hinkt? Wenn SUN ihr Java unter ISO normiert und Swing dazu mit in den Standard packt. Das werden wir aber wohl nicht mehr erleben.
Genau das gleiche bei C#: erst wenn im ISO-C#- oder ISO-CLI-Standard die WindowsForms oder Gtk# oder andere GUI-Lib dabei ist, könnt ihr im ISO-C++-Standard eine GUI fordern und Vergleiche anstellen!
Die C++-Welt hat aber eine GUI, sogar mehrere GUIs: sowohl gewerbliche (Qt) als auch kostenlose (gtkmm u.a.). Nimmt doch einfach Qt oder gtkmm oder smarwin++ oder...
C++, Java und C#: GUIs vorhanden.
C++ Standard, C# Standard, CLI Standard: keine GUI vorhanden.
-
Achja, hinzukommen würde, das die Stdlib- und Compiler-Hersteller auch die GUI-lib implementieren müssten. Wir wissen alle, das es auch mit Kosten verbunden ist. OpenWatcom hat immer noch keine komplette Stdlib. STLport wird nicht weiter gepflegt. Apache ist immer noch dabei ihre von Rogue Wave gesponserte Stdlib zu fertig zu implementieren. Die GCC-Jungs scheinen ihre Stdlib fertig zu haben. Dinkumware hat diese fertig und sogar noch mehr implementiert. Aber schon alleine die Special Math Lib wurde aus KOSTENGRÜNDEN von der LWG (Library Working Group des C++ Komitees) aus dem TR1 gestrichen. Haben wir das export-Schlüsselwort in allen Compilern? nein! Implementierungskosten sind zu hoch. Erst einer (Cameou) hat es bisher implementiert und würde sowas nie wieder tun.
Jetzt stellt euch mal eine GUI-Lib im C++ Standard vor. Könnte man glaub ich auf Implementierung lange warten.
Jetzt wisst ihr, warum es auch keine GUI-Lib im Standard geben würde. 1. wegen der Kompromisse für die Features und 2. wegen der Implementierungskosten. Dann lasst lieber Trolltech, gtkmm u.a. ihr Ding durchziehen und profitiert selbst davon, in dem ihr euch das passende raussucht. Wir können froh sein, das wir mittlerweile Regex u.ä. im Standard haben. Das ist viel essenzieller in der Informatik und EDV als eine austauschbare GUI.
-
Ein paar Grundsatzfragen von mir, die mich interessieren: Ist die stdlib von C++ eine ISO-Norm? Wieso gibt es verschiedene Implementierungen der stdlib, ich sehe da irgendwie keinen Sinn dahinter?
Java als Sprache und die Bibliotheken sind doch jetzt unter einer freien Lizens, was würde eine ISO-Normierung für Vorteile bringen?
-
Ja, die Stdlib ist ein Bestandteil der ISO-Norm.
Die Frage mit den verschiedenen Implementierungen verstehe nicht ganz. Warum gibt es von Java verschiedene Implementierung? (z.B. von IBM u.a.) Könnte ich auch fragen, warum wir hier in der Firma IBM- und SUN-Runtimes laufen haben, und diese auch noch binär inkompatibel bei RMI sind.
Aber das ist jetzt nur eine rethorische Gegenfrage von mir um dich dafür zu sensiblisieren.
Java ist noch nicht unter einer freien Lizenz. Bisher ist meines Wissens nur der Java Compiler unter unter GPL gestellt. Alles andere ist noch Copyright by SUN. Der Source der SUN Java Runtime Library ist zwar einsehbar, aber nicht unter einer freien Lizenz. Und kostenlos ist auch noch lange nicht frei.
Welchen Vorteil eine ISO-normierung hätte? IBM u.a. müssten für ein Java-Compatible-Siegel keine Lizenzgebühren mehr an SUN entrichten. Und sicherlich wäre noch viele weitere Lizenz-Fragen und Patent-Fragen autom. gelöst. Schon alleine das Java-Logo und Java-Name ist Trademark by SUN. Bei C++ und C# sieht die Sache anders aus: jeder kann und darf diese Begriffe benutzen und darf kostenlos diese Sprachen und ihre Compiler und Libraries implementieren. Für C++ mussten z.B. Bjarne Stroustrup und AT&T ihre Rechte aufgeben und entsprechende Papiere bei der ISO unterschreiben, die das belegen. AT&T und Bjarne können heute niemanden mehr wegen C++ verklagen oder Geld verlangen. Auch die STL mußte von Hewlett Packard damals abgetreten werden. Dazu ist nicht jeder ebend mal bereit.
Hier mal der historische Verlauf einer von SUN nicht gewollten normierung:
http://www.heise.de/newsticker/meldung/1592
http://www.heise.de/newsticker/meldung/4653
http://www.heise.de/newsticker/meldung/4717
http://www.heise.de/newsticker/meldung/5273
http://www.heise.de/newsticker/meldung/7200
-
chrische5 schrieb:
Ich kannte die Antwort noch nicht und weiß auch nicht, warum die bereits vorhandenen GUI ein Grund dafür sein sollen keine neue im Standard aufzunehmen.
Um nochmal speziell auf diese Frage einzugehen. Du mußt davon ausgehen, das das Komitee nur eine Abstimmungsgruppe ist. (die Realität sieht natürlich so aus, das die Komitee-Mitglieder mehr machen als nur "Abstimmen", sondern auch aktiv beisteuern
) Wenn du sagst "Warum bringt man nicht gtkmm oder Qt in den Standard?", dann mußt du dich da an die Inhaber wenden. Soll heißen, Trolltech und das gtkmm-Team (Gnome?) müssen erstmal bereit sein, ihre Rechte abzutreten, und zweitens ein Proposal schreiben und einreichen. Dann kann erst das Komitee aktiv werden. Sind aber diese Inhaber der GUI-Libraries überhaupt bereit?
Also, gaaaaanz am Ende kommen soviele Faktoren zusammen, die auf eine GUI im Standard eher ein Nein vermuten.