Rechenprogramm, maximieren, goto und ladedu
-
Kóyaánasqatsi schrieb:
It0101 schrieb:
Also so langsam hab ich auch meine Zweifel... nicht mal ich hab mich am anfang meiner Programmierlaufbahn so glatt angestellt. Ich hab damals ( 1991 ) die Q-Basic-Hilfe auf nem 9-Nadel-Drucker ausgedruckt... das waren viele Seiten

Ich habs auf die Art gelernt...
Und wie alt warst du da?
EDIT:
@_matze
Er ist 14, ich verstehe ja das du die Art von seiner Dummheit nicht tollerierst, aber dann poste doch einfach nicht...danke schön!
-
ich war 9
Ich hatte nen 2Mhz 8086 Laptop mit 2 DD-Laufwerken, ohne Festplatte... war direkt nach der Wende... wir hatten praktisch nix damals 
-
um ausnahmsweise mal wieder zum eigentlichen Problem zurückzukehren...

also nochmal gaaanz ausführlich:
Möglichkeit 1:
#include<iostream> #include<windows.h> using namesapce std; int main() { HWND hwnd=GetConsoleWindow();//ermittelt handle, kennen manche compiler aber nicht ShowWindow(hwnd, SW_MAXIMIZE); }Möglichkeit 2:(falls der compiler möglichkeit 1 nicht mag^^)
#include<iostream> #include<windows.h> using namesapce std; int main() { HWND hwnd=FindWindow(0, TEXT("deinen Fenstertitel hier einfügen"));//bestimmt handle ShowWindow(hwnd, SW_MAXIMIZE);//maximiert fenster }vermutlich hattest du hier einfach vergessen, dass dein fenstertitel in " " stehen muss
.falls es immernoch nicht geht:
welche fehlermeldung gibt der compiler genau aus und welchen verwendest du?ach ja bevor ichs vergesse zu shreibn

so setzt man den fenstertitel um:
#include<iostream> #include<windows.h> using namespace std; int main() { SetConsoleTitle(TEXT("neuer Fenstertitel"));//setzt den fenstertitel auf neuer Fenstertitel }und aus einer Endlosschleife kommt man am einfachsten und elegantesten wieder raus mit:
break;du kannst es ja in Zusammenhang mit einer Abfrage setzen ob die Schleife nochmal durchlaufen soll:
cout<<"Soll die Schleife nochmal durchlaufen(j/n)?\n"; char a; cin>>a; if(a=='j') { } if(a=='n') { break; }mfg,
andi01.
-
thx andi01!!!!
Code::Blocks 8.02
mit dem progr. meld ich mich gleich noch einmal
-
mit dem zweiten code funktioniuet das kompilieren schonmal,
aber das fenster maximiert sich nicht...?und auch der name in der oberen leiste ist nicht verändert, sondern zeigt nur debn Pfad an...
bin dann mal kurz afk
bb
-
|< schrieb:
das fenster maximiert sich nicht...?also ein Konsolenfenster lässt sich nicht so maximieren dass es den ganzen Bildschirm einnimmt, sondern nur etwa den halben.
falls gar nichts passieren sollte (was aber eher unwahrscheinlich ist weil bei mir gehts ja auch) gibts 2 Möglichkeiten:
1.du könntest dir nen anderen kostenlosen compiler besorgen, z.B. Mircrosoft Visual C++ 2008 Express Edition ist sehr gut, aber das lässt sich bestimmt auch anderweitig lösen.
2.du versuchst es mi folgendem Code:
#include <windows.h> #include <iostream> using namespace std; int main() { HWND hwnd = FindWindow(0, TEXT("aktueller fenstertitel")); RECT *rect = (RECT*)malloc(sizeof(RECT)); GetWindowRect(hwnd,rect); int x=rect->left; int y=rect->top; int breite=rect->right; int höhe=rect->bottom; free(rect); MoveWindow(hwnd, x, y, breite+1000, höhe+1000, TRUE);allerdings bezweifle ich doch sehr dass dieser code funktionieren wird wenn der andere schon nicht geht, aber nen versuch ist es wert.
was das mit dem Fenstertitel betrifft:
lass dir einfach mal das handle ausgeben:
HWND hwnd = FindWindow(0, TEXT("aktueller fenstertitel")); cout<<hwnd; ShowWindow(hwnd, SW_MAXIMIZE); cin.get(); cin.get();wenn das handle 00000000 ist dann haste den falschen titel eingegeben, bei find window muss der aktuelle fenstertitel rein, also der pfad, und bei SetConsoleTitle der gewüschnte neue Fenstertitel.
mfg,
andi01.
-
der compiler gibt aus, dass was mit getconsole nicht stimmt....
naja, ich werde es mal versuchen!
-
jo ich hab das jetzt oben ausgebessert und durch FindWindow() ersetzt, das sollte einwandfrei kompilern.
was das mit dem fenstertitel betrifft: einfach mal das handle ausgeben lassen (siehe oben!).
im Übrigen würde ich dir sowieso empfehlen den compiler zu wechseln wenn der so viele sachen nicht kann, möglicher downloadlink:
http://www.chip.de/downloads/Visual-C-2008-SP1-Express_24081894.htmldie installation dauert etwas, also solltest du mal zeit haben wennde das machst.
geht es denn jetzt mit dem neuen code von oben?
mfg,
andi01.
-
ich hab gerade eine pauke bekommen, jetzt klappt es^^
danke an alle!
-
|< schrieb:
ich hab gerade eine pauke bekommen, jetzt klappt es^^
danke an alle!Öhm... ?
-
auch das maximieren und fenstertitel setzen?
-
andi01 schrieb:
auch das maximieren und fenstertitel setzen?
Ja, er hat als 2. Parameter seinen Projektname in der FindWindow() angegeben...
-
Das bringt doch nix hier. Der TE kann kaum C++ programmieren und ihr drückt ihm hier irgendwelche HWND-Geschichten rein. Das hat für ihn NULL ( oder 0 ) Sinn. Ist doch total wurst ob die Titelleiste irgendwelchen Text enthält oder nicht. Sowas macht man zur Abrundung, wenn die Kernziele erreicht sind, aber nicht zum Anfang.
Genausogut könnte man ihm hier fertigen boost::asio-socket-code reindrücken nur weil er mit nem dämlichen Spieleserver connecten will...
Soll erstmal nen Wechselgeld-automaten programmieren. Das ist zum Anfang immer ne gute Sache.
Wechselgeld 18,53€: welche Scheine und welche Münzen werden zurückgegeben?
Das is ne Aufgabe für Anfänger und da ist die Bezeichnung der Titelleiste relativ rille.
-
ja, alles fertig!!!
danke andi!!!
danke !!!alle anderen!!

nur is das halt bei meinem 1/3 des bildschirms, aber das is nicht schlimm

will ja nich nerven, aber kann man die ergebnisse nicht irgendwie in die zwischensblage kopieren?
zum beispiel?
[cpp]cout<<"drücke Strg+C um das ergebnis in Newton zu kopiern\n";
cout<<"drücke Strg+C+B um das ergebnis in Kg zu kopieren\n";wenns zu langwierig ist, einfach lassen

-
na dann passt ja alles^^
mfg,
andi01.
-
It0101 schrieb:
Das bringt doch nix hier. Der TE kann kaum C++ programmieren und ihr drückt ihm hier irgendwelche HWND-Geschichten rein. Das hat für ihn NULL ( oder 0 ) Sinn. Ist doch total wurst ob die Titelleiste irgendwelchen Text enthält oder nicht. Sowas macht man zur Abrundung, wenn die Kernziele erreicht sind, aber nicht zum Anfang.
wieso stört es dich, was ich mache?

ja, wenn jetzt einer kommt:
was macht denn das und das und das, werd ich das kaum erklären können, aber probieren geht über studieren
-
das mit der zwischenablage ist so weit ich weiß mit standard c++ nicht lösbar, aber stell die frage mal im WinAPI-Forum, da hste gute chancen.
mfg,
andi01.
-
wieso stört es dich, was ich mache?

Vielleicht will ich, dass du was lernst, was du dann auch wirklich verstehst.
-
prinzipiell hat It0101 da schon recht, du solltest verstehen was du da tust, aber das kommt schon noch mit der zeit wenn du erst anfänger bist. Jeder von uns hier hat mal klein angefangen

allerdings wäre es für dich sehr empfehlenswert erstmal bei standard c++ zu bleiben und das zu lernen und nicht gleich mit der WinAPI anzufangen, aber bevor man gänzlich den Spaß dran verliert kann man da auch mal ne Außnahme machen.
und das mit der zwischenablage: einfach mal einen Thread im WinAPI-Forum eröffnen.
mfg,
andi01.
-
|< schrieb:
ja, alles fertig!!!danke andi!!!
nur is das halt bei meinem 1/3 des bildschirms, aber das is nicht schlimm

will ja nich nerven, aber kann man die ergebnisse nicht irgendwie in die zwischensblage kopieren?
zum beispiel?
[cpp]cout<<"drücke Strg+C um das ergebnis in Newton zu kopiern\n";
cout<<"drücke Strg+C+B um das ergebnis in Kg zu kopieren\n";wenns zu langwierig ist, einfach lassen

Ich habe dir schon 100.000 mal gesagt, dass du die Grundlagen lernen sollst. Ohne die wirste das mit der Zwischenablage eh nicht hinbekommen, außerdem habe ich dir bereits gesagt wie man das macht.