gleich mit MFC anfangen oder besser mit der WINAPI32
-
erster
-
meine meinung dazu: wenn du nur mal schnell eine simple gui brauchst, klick dir das ding mit der VCL oder im resourcen-editor von Visual Studio zusammen - fertig.
wenn du ernsthaft windows-programmierung betreiben willst, vergiss diesen ganzen lib-krams und lerne von der pike auf - sprich WinAPI in reinem C. wenn du das alles begriffen hast, fängst du einfach an, deine dinge selber in klassen zu kapseln. dann hast du schlanke schnittstellen und den ganzen overhead der VCL/MFC aussen vorgelassen. wenn du damit durch bist, wirst du merken, wie schlecht diese libs das WinAPI kapseln und deine frage hat sich erledigt, da du sie vermutlich gar nicht mehr benutzen willst ;).
wirf mal einen blick in das MFC/VCL forum ... 90% der fragen die dort gestellt werden, wären überflüssig, wenn die leute das WinAPI drauf hätten. sorry, aber so ist es einfach ... weiss es aus eigener erfahrung, habe auch mit einer lib angefangen, aber schnell gemerkt, das man damit nicht weiterkommt, wenn man in die tiefen des systems will.
so far ... rocknix ///
-
wirf mal einen blick in das MFC/VCL forum ... 90% der fragen die dort gestellt werden, wären überflüssig, wenn die leute das WinAPI drauf hätten. sorry, aber so ist es einfach..
so ein Bldsinn..die meisten Fragen im BCB-Forum gehen um VCL-Klassen und wie man mit ihnen umgehen muß...was nützt einem da das Wissen in WinApi?! Natürlich könnte man auch statt der Klassen zu verwenden WinApi verwenden, aber des wär wohl net ganz der Sinn der Sache
-
ok, im vcl forum ist es nicht so extrem, aber bei mfc...
-
wie es im mfc-Forum is weiß ich nich (mag mfc nich)
ne eigene Lib zu schreiben is zwar ne nette Programmier-Übung, aber ist es wirklich nötig? Muß man eigentlich immer und jeder das Rad neu erfinden? "VCL und MFC sind nix für ernsthafte Programmierung"..naja immerhin haben -vermute ich- erfahrene Programmierer bei Micro$oft und Borland die Dinger geschrieben...ob die das wirklich schlechter können als ein einziger Hobby-Programmierer (falls man Hobby-Programmeir is
)? und selbst wenn man es schafft einige Details die an VCL/MFC schlecht gelöst sind bessser hinzukriegen, kriegt man dann die vielen Dinge die sehr gut gelöst sind auch so gut hin? Hat man vielleicht sehr viele Dinge die dort sehr geschkickt gemacht wurden nicht einfach übersehen und steht wenn man sie selber coden will plötzlich dumm da? Ich persönlich hab dadrauf jedenfalls keine Lust und benutz lieber die VCl, selbst wenn sie nicht so schnell is wie reine WinApi . (Ich code ja auch C++ und nicht Assembler obwohl Assembler-Code schneller is)
-
Natürlich könnte man auch statt der Klassen zu verwenden WinApi verwenden, aber des wär wohl net ganz der Sinn der Sache
genau das ist der punkt - meine erfahrung hat mir gezeigt, dass es mitunter viel viel mehr zeit kostet, die klassen zu verstehen als das WinAPI zu durchschauen. und die klassen zu durchschauen heisst auch noch lange nicht, das man die implementierung und somit den systemkrams begriffen hat. und wehe es tauchen mal fehler auf, dann ist das gejammer gross
...
ist das sinn der sache
rocknix ///
-
Ein Gundverständins der WinApi is aufjdenfall gut. Wenn man zB auf eine Form der VCL zeichnet wird man sich wahrscheinlich wundern daß das was man gemalt hat weg ist sobald man die Form minimiert und wieder hochholt. Da nützt einem das Api-Wissen daß das halt beim Ereignis WM_Paint gemacht werden muß und nicht sonstwo wenns dauerhaft sein soll... trotzdem kriegt man graphische Oberflächen einfach mit KlassenLibs viel schneller hin und sie sehen meistens besser aus, weil man einfach mehr Aufwand ins Design als in die Programmierung selber stecken kann
-
crass hat recht. Ich kenne nun keine anderen GUI-LIBs als die VCL, aber die ist so der Hammer. Wenn man sich den Quellcode durchschaut, dann merkt man, dass dieser von Menschen geschrieben wurde, die Ahnung haben. Richtig geil! Natürlich ist es mit ner LIB einfacher und schneller zu programmieren als mit WinAPI selber. Man denke da nur an das Arbeiten mit Bitmaps. Ist in VCL super-einfach. Ein paar Zeilen ... fertig.
-
Die VCL ist auch ganz gut. Aber MFC stinkt. Mußte den Mist mal Kurzzeitig beruflich machen, nach 2 Wochen hab ich den Mist weggeschmissen, und das Projekt rein WinAPI gecodet. Is echt scheußlich, so ein durcheinander an Klassen. Ok - der MFC Inet kram ist noch logisch, aber ne ganze Anwendung in MFC? Nein Danke *g
-
Man denke da nur an das Arbeiten mit Bitmaps. Ist in VCL super-einfach. Ein paar Zeilen ... fertig
<ironie>
ja, stimmt - es ist wirklich supereinfach mit der VCL/MFC bitmaps auf den schirm zu bringen, vor allem wenn man diese noch dazu verwenden möchte eigene controls ( scroller/thumbs sind übrigens besonders einfach, da das subclassen/hooken in VCL so prima funktioniert ) zu zeichnen, wo doch das skinning sooo gefragt ist ...
</ironie>ach, übrigens ? wieviele zeilen brauchst du für eine bitmap mit dem WinAPI ? 100 ? wohl eher nicht, hmm ?
so, schluss mit dem flame ... rocknix
[ Dieser Beitrag wurde am 01.04.2003 um 11:11 Uhr von RockNix editiert. ]
-
Für den Anfang reicht MFC. Später wenn man relativ sicher im Umgang mit dem CWnd- Zeuch ist schadet es auf keinen Fall einen Blick in die WinAPI zu werfen. Gerade wenn es um IPC etc. geht.
-
@RockNix: Anzeigen der Bitmap-Datei "Bitmap.bmp" an Position (0,0) im Fenster:
Graphics::TBitmap* bmp = new Graphics::TBitmap; bmp->LoadFromFile("Bitmap.bmp"); Canvas->Draw(0, 0, bmp); delete bmp;
Mach das mal in WinAPI so fix. Nene, das Arbeiten mit Klassen für die WinAPI ist durchaus sinnvoll. :p