Problem mit der Nachrichtenschleife?
-
Matyr schrieb:
weißt du der Variable Zufallszahl eig irgendwo einen wert zu?
Ja direkt am Anfang von WinMain.
Zufallszahl = 6;
Habs erstmal auf 6 gemacht damit ich das Programm, nach dem Kompilieren, schneller Testen kann.
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpcdline, int ncmdshow) { WNDCLASSEX windowclass; // Struktur Fenstereigenschaften HWND hWnd; // Handle auf Fenster MSG message; // Nachricht // Variablen für Spiel int GerateneZahl = 0; // Zahl, die spieler eingibt int Versuche = 0; // Anzahl der Versuche int Punkte; // Punktzahl // Zufallszahl ermitteln und speichern Zufallszahl = 6;
-
Wenn die Zufalszahl = 6 ist, dann ist sie dementsprechend nicht größer als 6 und auch nicht kleiner als 6, somit werden diese beiden if Anweisungen nicht ausgeführt und er springt direkt zu Richtig.
Mfg. Matyr
-
aso...Oh bemerk grad auch den Fehler...^^
Ich vergleich die zufallszahl garnicht mit der eingegebenen Zahl des Spielers... Mh.. Ja okay werd mich mal drann setzen uind das korrigieren^^
Dann muss ich also nicht Zufallszahl > 6 etc , sondern den Inhalt von hBox2 Prüfen... aber geht das so einfach ich zB
if
{
hBox2 > Zufallszahl ...
etc.schreibe?
EDIT: Oder muss ich erst den Inhalt mit "GetWindowsText()" herrausholen und dann prüfen? also so:
Spielerzahl > GetWindowsText()....?
Weil das Text stört michein wenig wenn ich mit zahlen arbeite^^ weiss ja nciht ob die funktion beides behandelt.. zumindest hat es ja mit SetWindowsText auch funktioniert^^
-
ne GetWindowText(...) und anschließend convertieren über stringstream
-
Danke. Werd mich dann da mal durchlesen zu den Strigstreams hab damit noch nicht so viel gemacht. Aber wird hoffendlich dann klappen^^
-
Also hab das mit dem Casten jetzt gemacht, aber dann spuckt der Compiler mir immer noch den Fehler aus das nicht gecastet wurde. Also Fehlermeldung ist:
"invalid conversion from 'int' to 'char'"
Mein Ziel ist es ja jetzt, int GerateneZahl, für die überprüfung mit "Zufallszahl" zu benutzen. Also wolte ich erstmal das ergebniss mittels GetWindowText, den Inhalt aus hBox2 speichern und dabei direkt casten:
int GerateneZahl = static_cast<int> (GetWindowText(hBox2, szZahl, sizeof(szZahl)));kann ich das etwa nicht mit dem normalen C++ Cast machen? Oder wo liegt hier der fehler?
-
Fehlerbehandlung ist nicht enthalten
#include <sstream> int laenge = GetWindowTextLength(hBox2); char* buf = new char[laenge+1]; GetWindowText(hBox2, buf, laenge); std::stringstream convert; convert<<buf; int data; convert>>buf; if(buf....
-
Ein C++ cast geht natürlich nciht.
Verwende atoi, oder noch einfacher GetDlgItemInt!
-
Matyr schrieb:
Fehlerbehandlung ist nicht enthalten
#include <sstream> int laenge = GetWindowTextLength(hBox2); char* buf = new char[laenge+1]; GetWindowText(hBox2, buf, laenge); std::stringstream convert; convert<<buf; int data; convert>>buf; if(buf....Danke für den Code. Allerdings funktionierts so auch nicht.
Habs so auf meinen Fall bezogen. Also bis zur If-Anweisung geht alles klar, nur sobald ich eine If Bedingung mit:if (buf > Zufallszahl)...machen möchte meckert mein Compiler:
ISO C++ forbids comparison between pointer and integer
Werds dann mal mit dem GetDlgItemInt versuchen. Wie genau funktioniert das? Bzw habt ihr einen guten Link den man sich angucken könnte dazu?
Gruss
Gizm
-
sry mein Fehler
der letzte teil sollte eig folgendes sein:
int data; convert>>data; if(data...
-
Ah Danke. Jetzt funktioniert es. Hab mich auch schon gefragt wofür das Einsamme int Data wohl ist xD
Jetzt muss icvh ja eigendlich nur noch eine Schleife drummherumm packen damit er nicht nur einmal fragt oder? Denn er Reagiert nur einmal auf das klicken. Muss ich da noch irgendetwas beachten? Irgendwie die EIngabe leeren und dann einfach alles nochmal? Also zB mit einer Do...While-Schleife?
-
kannst mit SetWindowText(...); lehren aber kein plan.
Das ist schließlich dein Project, daher musst du schon selber wissen was du machen möchtest.
Und alles sagen hilft ja auch nicht beschäftige dich erstmal damit was der source den ich gepostet habe überhaupt macht.Mfg. Matyr