PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fenster maximiert starten (Visual C++ 6)



sixfriends
01-05-2003, 15:43
Ich bin gerade dabei, mit MS Visual C++ 6 eine Anwendung zu schreiben. Kann ich irgendwo festlegen, dass die Anwendung maximiert gestartet wird?

BS Win98 und/oder WinXP.

peschmae
01-05-2003, 16:51
tststs das forum heisst mrunix :D :D :D

MfG Peschmä

P. S. ich hatte mich früher auch an VC++ versucht, bin aber kläglich gescheitert und habe anschliessend mit Delphi, C++ mit QT/FLTK und jetzt mit Java und Perl fortgefahren...
Viel Spass damit ;-)

anda_skoa
01-05-2003, 17:01
WinAPI oder benutzt du eine Klassenbibliothek für die GUI?

Ciao,
_

peschmae
02-05-2003, 10:50
falls du die Win32 - Api benutzt (die kenne ich von Delphi her ein kleines bisschen), dann schau mal hier vorbei:

http://www.winprog.org/tutorial/simple_window.html



ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);


The nCmdShow parameter is optional, you could simply pass in SW_SHOWNORMAL all the time and be done with it. However using the parameter passed into WinMain() gives whoever is running your program to specify whether or not they want your window to start off visible, maximized, minimized, etc... You will find options for these in the properties of windows shortcuts, and this parameter is how the choice is carried out.


und organisier dir die MSDN - CDs mit der Api - Doku (sind bei VC++ 6 dabei)

MfG Peschmä

sixfriends
02-05-2003, 12:46
So, dann muss ich doch mal was klarstellen:
@peschmä:
Ist ja nicht für mich, sondern für Nichtinformatiker ohne Linux oder sonst was Unix- ähnliches. (siehe Signatur :D)
Mit Visual C++ hab ich nur angefangen, weil ich das Buch Visual C++ 6 in 21 Tagen unter http://www.mut.de in der Leseecke zum Probelesen gefunden habe - komplett.:p
Und eigentlich programmier ich auch kein C++, sondern eher Java, Turbo Pascal, Perl und diverse Markup Sprachen.
Die MSDN hab ich z.Z. nicht da (Das waren 2 CDs, oder?)

@anda_skoa:
Was willst du von mir????? Keine Ahnung :confused:
Ich glaube es ist nicht die WinApi, ich hab nämlich keine WinMain Funktion in dem Projekt gefunden.

Ich hab einfach mit dem MFC - Anwendungsassistenten(exe) eine Dialogfeld basierte Anwendung erstellt.

peschmae
02-05-2003, 13:05
1. MSDN sind zwei CDs
2. MFC ist die M$ - Klassenbibliothek für GUIs

schau mal da: http://www.experts-exchange.com/Programming/Programming_Languages/MFC/Q_20546279.html

dort hat es diverse Or - Verknüpfte flags, eventuell kannst du die mit dem VC - Objektinspektor oder so irgendwo einbauen :confused:

und vielleicht auch da
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/_core_changing_the_styles_of_a_window_created_by_m fc.asp

(M$ hat offenbar die MSDN - doku online gestellt..., vielleicht nicht komplett)

MfG Peschmä

sixfriends
02-05-2003, 16:32
Der Wahnsinn, es funktioniert. Ich hab nach langem, sehr sehr langem Suchen etwas bei http://www.codeproject.com oder genauer gesagt in dem Thread http://www.codeproject.com/useritems/dialog_tips.asp gefunden. :D*SichTierischFreu*:D

Und so einfach kann es sein, einfach in den OnInitDialog() eintragen:


SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE, NULL);

Das wars, das ist alles, falls es jemanden interessiert.
Man muss allerdings die Maximieren-Schaltfläche aktiviert haben, sonst fehlt der Code und das Prog macht sehr merkwürdige Sachen :)

anda_skoa
02-05-2003, 17:12
Original geschrieben von sixfriends
So, dann muss ich doch mal was klarstellen:
@peschmä:
Ist ja nicht für mich, sondern für Nichtinformatiker ohne Linux oder sonst was Unix- ähnliches. (siehe Signatur :D)


Nunja, wäre es nicht trotzdem besser, eine portable Applikation zu schreiben?
Mit wxWindows zum Beispiel?



@anda_skoa:
Was willst du von mir????? Keine Ahnung :confused:
Ich glaube es ist nicht die WinApi, ich hab nämlich keine WinMain Funktion in dem Projekt gefunden.

Ich hab einfach mit dem MFC - Anwendungsassistenten(exe) eine Dialogfeld basierte Anwendung erstellt.

Dann verwendest du als Klassenbibliothek MFC.
Du hast also meine Frage beantwortet ;)

Wie gesagt, halte ich es nicht für sinnvoll, damit Applikationen zu entwickeln.
MFC ist tot und nicht portabel.

Ciao,
_

peschmae
03-05-2003, 07:58
sogar M$ hat sie ja mitterweile aufgegeben... (kein wunder ;-))

MfG Peschmä

sixfriends
03-05-2003, 12:53
Für irgend so ne dumme kleine Windows Application zu schreiben reicht es aber. Ich hab im Moment weder Zeit noch Lust, mir C++ im Handbetrieb beizubringen. Mit dem MFC Sch....wachsinn mach ich hier einen Button hin, da was hin, pack ein Menü rein, leg Funktionen drauf --> Programm läuft.

Normalerweise programmier ich ja auch von Hand, aber ich hör grade eine Weiterführung von Java, Einführung in Swing, Servlets u.ä. und das gäbe mir zuviel Durcheinander.

anda_skoa
03-05-2003, 13:00
Original geschrieben von sixfriends
Für irgend so ne dumme kleine Windows Application zu schreiben reicht es aber. Ich hab im Moment weder Zeit noch Lust, mir C++ im Handbetrieb beizubringen. Mit dem MFC Sch....wachsinn mach ich hier einen Button hin, da was hin, pack ein Menü rein, leg Funktionen drauf --> Programm läuft.


Auch andere Tookits haben GUI Builder.



Normalerweise programmier ich ja auch von Hand, aber ich hör grade eine Weiterführung von Java, Einführung in Swing, Servlets u.ä. und das gäbe mir zuviel Durcheinander.

Soviel ich weiß gibt es auch IDEs mit GUI Builder für Java.

Ciao,
_

sixfriends
03-05-2003, 13:21
Auch andere Tookits haben GUI Builder.
Die anderen Toolkits hab ich aber nicht hier, die müsst ich mir erst organisieren.
:p Es reicht mir nur einfach aus, für das, was ich im Moment damit mache.


Soviel ich weiß gibt es auch IDEs mit GUI Builder für Java.
Das kann schon sein, aber ein GUI Builder kann (normalerweise) nie die volle Funktionalität von irgendwelchen Klassen unterstützen. Und dann muss ich das Prog aber wieder von Hand bearbeiten. Und in dem Fall schreib ich das Programm doch lieber ganz selber, dann find ich mich im Quelltext auch besser zurecht, wenn ich was verändern will.

Für Java reicht mir deshalb auch ein einfacher Editor mit Syntax Highlighting, XEmacs unter Linux und JCreator unter Windoof.

anda_skoa
03-05-2003, 15:22
Original geschrieben von sixfriends
Die anderen Toolkits hab ich aber nicht hier, die müsst ich mir erst organisieren.
:p Es reicht mir nur einfach aus, für das, was ich im Moment damit mache.


Du musst ja auch selbst wissen, ob du dir das antust.
Ich würde nicht mal für viel Geld mit MFC arbeiten.



Das kann schon sein, aber ein GUI Builder kann (normalerweise) nie die volle Funktionalität von irgendwelchen Klassen unterstützen.


Ich versteh nicht was du damit meinst.
Den einzigen GUI Builder, den ich im Moment benutze, ist der Qt Designer.
Da kann sicher fast alle Eigenschaften von Widgets beinflussen.



Für Java reicht mir deshalb auch ein einfacher Editor mit Syntax Highlighting, XEmacs unter Linux und JCreator unter Windoof.

Rein aus Neugier: warum benutzt du zwei verschiedene Editoren?

Ciao,
_

sixfriends
03-05-2003, 17:53
Ich weiß genau, was ich tue (manchmal) ;)

Und ich benutz zwei verschiedene Editoren, weil es den JCreator nicht für Linux gibt, der ist aber ziemlich gut zum Programmieren mit Java. Syntax Highlighting, Kompilieren per Knopfdruck,...

Davon mal abgesehen: Was ist eigentlich so schlecht an der MFC??? Hab erst vor ca. einer 1 1/2 Woche mit C++ angefangen.

bischi
03-05-2003, 18:26
Was ist eigentlich so schlecht an der MFC???

1. verd** unübersichtlich
2. Macht ca. 3 mal so viel Code wie nötig (Ich habs mir auch mal angesehen, bin nach ca. 3Wochen aber zum Schluss gekommen, dass es S** ist)
3. Jedenfalls ich hatte grosse Mühe mit all den schönen Wizards zurechtzukommen
4. Es kostet (zumindest theoretisch...)
5. AND LAST BUT NOT LEAST: Es ist M$$$

Hoffe, ich konnte deine Frage beantworten, MfG Bischi

PS: Du musst mich nicht so ernst nehmen, doch ich habe mich wochenlang uber VC++ aufgeregt, weil nichts so funktionierte, wie es sollte (selbst dann, wenn ich das Beispiel sozusagen 1:1 aus dem Buch abgeschrieben habe). Dann bin ich auf Java umgestiegen und hatte riesige Freude *freud*, da Java das gemacht hat, was ich wollte.

@anda_skoa:
MFC ist tot und nicht portabel. : Das mit dem portabel stimmt, doch tot ist es leider noch lange nicht:mad:

sixfriends
03-05-2003, 18:48
OK, OK, ich geb mich geschlagen. Ich hab auch schon festgestellt, dass MFC so ein klitzekleines Bischen (*RäusperRäusper*) unübersichtlich ist, aber:
keine Zeit mir was besseres zu suchen UND beizubringen.

Zu Java: Java ist nicht schlecht, aber das Erstellen einer GUI ist meiner Meinung nach sehr umständlich, vor allem die Positionierung von Elementen kann problematisch sein, wenn man irgendwann tausende Container ineinander legt, um den gewünschten Style zu erhalten.

@anda_skoa:
Ist der Qt Designer für C++, BS Windows oder Unix?

arthur
03-05-2003, 18:55
@sixfriends:
es gibt für emacs eine wirklich gute java ide:
http://jdee.sunsite.dk/

@bischi und die anderen:
mfc war eine ganz lange zeit die einzige alternative zu direkten windows
programmierung, es ist oo und ziemlich umfangreich.
und nur weil es nicht so leicht zu handhaben ist wie java, ist es noch
lange kein schrott.

gruss
Arthur

ps.
das mit dem fenster maximieren geht ganz sicher auch über mfc,
der gegeben tip ist nur ein windows api hack.
(hab kein vs installiert, deswegen keine echte lösung)

anda_skoa
03-05-2003, 18:58
Original geschrieben von sixfriends
Ich weiß genau, was ich tue (manchmal) ;)

Und ich benutz zwei verschiedene Editoren, weil es den JCreator nicht für Linux gibt, der ist aber ziemlich gut zum Programmieren mit Java. Syntax Highlighting, Kompilieren per Knopfdruck,...


Ah, verstehe.
Ich programmierere praktisch ausschließlih unter Unix. Wenn ich mal was in Windows machen muss, nehm ich XEmacs.



Davon mal abgesehen: Was ist eigentlich so schlecht an der MFC??? Hab erst vor ca. einer 1 1/2 Woche mit C++ angefangen.

DIe MFC ist vom Design her einfach immer noch ein Win API Wrapper, keine echte C++ GUI Bibliothek.
Sie wurde immer nur erweitert, ohne mal eine neue Version rauszubringen.

Dadurch schleppt sie tonnenweise Altlasten mit und ist nicht mal in sich selbst konsitent.
zb Gibt es da mehrere Typen für Strings, anstatt alles konsequent in CStrings zuhandhaben.

Außerdem muss man des öfteren für ganz banale Dinge in die WinAPI, sowas sollte im Normalfall nicht nötig sein (siehe Qt)
Kommt eben vom Alter der Lib.

Dann gibt es noch vielzuviele Macros. Ohne IDE, die das unterstützt und dem Entwickler abnimmt, ist das praktisch nicht mehr durchschaubar.
Kommt auch aus der Zeit, wo man noch kein richtiges C++ konnte.

Wenn du dir in Programmiererforen die Probleme anschaust, die MFC Programmierer haben, kannst du nur mehr den Kopf schüttlen.
Das geht mir halbwegs modernen Bibliotheken alles viel einfacher.

Wie du ja schon selbst erfahren musstest, ist die Doku auch nicht das Wahre.

Die MFC ist der größte Klotz am Bein, den Microsoft zur Zeit hat.
Es gibt tausende Applikationen, die sie verwenden und alle Probleme mit irgendwelchen Hacks umschifft haben.
Das ist für die Windows Entwickler ein Alptraum, weil sie irgendwelche kranken APIs aufrecht erhalten müssen, etc.

Darum forciert Microsoft auch .Net so sehr.
Damit haben sie nämlich die Möglichkeit, endlich mal ein aktuelles Framework für Anwendungsentwickler zur Verfügung zu stellen und die alten Sachen auslaufen zu lassen.

Ciao,
_

anda_skoa
03-05-2003, 19:04
Original geschrieben von bischi
@anda_skoa: : Das mit dem portabel stimmt, doch tot ist es leider noch lange nicht:mad:

Microsoft hat sie schon fallen gelassen, damit ist sie schon so gut wie tot.
In der MS Welt wird alles ziemlich schnell fallen gelassen, wenn MS das tut.

Ciao,
_

anda_skoa
03-05-2003, 19:11
Original geschrieben von sixfriends
Zu Java: Java ist nicht schlecht, aber das Erstellen einer GUI ist meiner Meinung nach sehr umständlich, vor allem die Positionierung von Elementen kann problematisch sein, wenn man irgendwann tausende Container ineinander legt, um den gewünschten Style zu erhalten.


Erstens kann man auch in Java Komponenten direkt platzieren.
Layouting ist natürlich besser, weil es dynamisch angepasst werden kann (zb für Internationalisierung)

Mit Box, BoxLayout und Box.Filler kann man alles sehr einfach erreichen.
Bei Qt geht das seit Qt3 noch eine Spur einfacher, weil man dan BoxLayouts ineinander verschachteln kann.
Aber es geht auch mit Zwischencontainern ganz gut.



@anda_skoa:
Ist der Qt Designer für C++, BS Windows oder Unix?

Designer auf allen Plattformen verfügbar wie Qt selbst.
Wenn du unter Windows professionell Software entwickelst, ist Qt3 eine der besten Varianten.

Wenn du nicht kommerziell arbeitest, könntest du Qt2 mit nder non-commercial Licence verwenden.
Die hat allerdings den Nachteil, dass du Visual Studio als IDE brauchst.
In deinem Fall offensichtlich kein Problem :)

Soweit ich weiß ist Qt in VS sogar in den Assistenten integriert, man kann also genau so einfach Applikationsgerüszte erstellen lassen, etc.

Ciao,
_

peschmae
03-05-2003, 20:05
für RAD würde ich mir auch mal Delphi/Kylix ansehen. Ich selbst habe das Teil allerdings schon lange nicht mehr angerührt, da ich mittlerweile mit Java arbeite. Aber ich habe eigentlich nur die besten Erinnerungen daran (an Delphi, Kylix habe ich nie ernsthaft probiert)

zu den Java - Guis: Der Borland JBuilder oder Netbeans haben Gui - Editoren, wär das was?

und für C++ gibts immer noch WxWindows, falls dir QT zu teuer ist

du hast also die Qual der wahl, aber natürlich will alles zuerst gelernt sein :-)

und nochwas zu MSVC++/MFC: anda_skoa hat hier schon recht, die letzte IDE ist ja ausm 98 und die neueren sind ja voll auf .NET fixiert, das ist tot oder zumindest todkrank

MfG Peschmä

P.S. die Borland - Programme gibts für bestimmte Lizenzbedingungen auch Gratis, Netbeans ist OpenSource und falls du mal ne echt coole IDE (leider noch ohne GUI - Editor) für Java und auch C++ suchst, empfehle ich dir, mal Eclipse anzuschauen

sixfriends
03-05-2003, 20:26
Ich hab es glaub ich schon mal gepostet: Ich will eigentlich garkeine GUI Editoren. Es sei denn ich hab keine Zeit, den Kram von Hand zu machen. Tut aber auch nichts zur Sache, bin halt faul in Sachen C++ (auch wenn ich vermutlich beim Suchen bestimmter Teile für mein prog länger brauche, als wenn ich meine eigenen Funktionen implementieren würde :) )

Aber ist schon seltsam, wohin sich mein Thread entwickelt hat. Aus einer Frage zum Maximieren von Fenstern ist eine Diskussion über den Unsinn von MFC geworden :rolleyes:

By the way: Was heißt eigentlich "MFC liegt im Sterben". Wenn mein MFC Programm kompiliert ist, dann läuft es doch hoffentlich trotzdem, oder nicht?

Und sobald ich Zeit hab, werd ich auch dem dunklen Herrscher Billron abschwören, und C++ Programmierung richtig lernen. Kennt jemand eine gute Anleitung zur Programmierung von GUI's. Nicht so was, wobei nur die Erstellung eines einfachen Fensters erklärt wird, sondern was Ausführlicheres (Menüs, Steuerelemente, Dialogfelder, ActiveX Einbindung...)

anda_skoa
03-05-2003, 22:37
Original geschrieben von sixfriends
Ich hab es glaub ich schon mal gepostet: Ich will eigentlich garkeine GUI Editoren. Es sei denn ich hab keine Zeit, den Kram von Hand zu machen.


Ich halte GUI Editoren durchaus für sinnvoll. Man sieht sehr schnell, ob etwas überladen wirkt oder unübersichtlich wird, etc.

Ciao,
_

sixfriends
03-05-2003, 23:31
Das seh ich auch, wenn ich das Programm kompiliert hab:)

bischi
04-05-2003, 08:38
@sixfriends:

Zu Java: Java ist nicht schlecht, aber das Erstellen einer GUI ist meiner Meinung nach sehr umständlich, vor allem die Positionierung von Elementen kann problematisch sein, wenn man irgendwann tausende Container ineinander legt, um den gewünschten Style zu erhalten.
Irgendwie machst du etwas falsch, denn ich finde es eindeutig einfacher (und kürzer und übersichtlicher und besser nachvollziehbar und ...) mit Java (Swing oder AWT) eine Oberfläche zu programmieren.

@anda_skoa, @peschmae: OK ich gebs ja zu (war was M$$ betrifft nicht mehr ganz auf dem Laufenden): VC++ ist tot!:D (umso besser:D :D)

MfG Bischi

peschmae
04-05-2003, 10:05
wirklich nicht :D

MSVC++ ist nicht tot (für mich zwar schon :p ), auch im Visual Studio .NET gibt es C++ - Unterstützung (neben C# und Basic)

Tot sind die MFC und M$ Visual Studio 6

@sixfriends:
Tot insofern, als dass es überhaupt nicht mehr weiterentwickelt und von M$ nicht mehr unterstüzt wird. M$ setzt jetzt voll auf .NET
MFC - Programme werden natürlich (zumindest vorläufig, so lange wir bei 32bit bleiben) vorläufe weiter laufen

MfG Peschmä

anda_skoa
04-05-2003, 11:55
Original geschrieben von sixfriends
Das seh ich auch, wenn ich das Programm kompiliert hab:)

Stimmt nicht.
Du musst es auch starten und alle nötigen Eingaben und Operationen machen, um zur richtigen Form zu kommen.

Außerdem dauert komplieren auch seine Zeit, vorallem bei größeren Projekten.
Ganz davon abgesehen, dass das Programm zeitweise nicht kompiliert werden kann oder nicht ausführbar ist, etc.

Ciao,
_

sixfriends
04-05-2003, 12:52
Zum Thema überladene Oberflächen:
Ich halt es sowieso mit der Ansicht: Wenn ich ein Element auf meinem GUI brauche, muss es halt rein, wenn nicht fliegt es wieder raus. Soll heißen: Ich hab im Normalfall nur das auf der Oberfläche, was ich wirklich brauche und nicht weglassen kann.:p