Hey Leute, ich bräuchte mal wieder eure Hilfe...
ich hab nen Code, der erkennt wo die maus ist, und den x&y wert ausgibt.
klappt auch ganz gut.
wollte jetzt so umschreiben, dass er wenn er an einer bestimmten Position steht und linksklick macht, eine Funktion ausführt. Leider (egal wo ich klicke) führt er nur die Erste Funktion aus... =(
Code:
int Neustart()
{
system("cls");
cout << "|*************************|" << endl; //cout bedeuted Ausgeben, also es gibt einen Text oder Variablen aus
cout << "| Zahlenraten |" << endl;
cout << "| By ME |" << endl;
cout << "| |" << endl;
cout << "|*************************|" << endl;
int versuche = 0;//Versuche werden auf 0 gesetzt
cout << "Bitte Nur!! Kleinbuchstaben!! und kein Buchstabe anstatt Zahl eingeben!" << endl;
cout << "Unendlich Versuche? (A) \n10 Versuche? (B)\n15 Versuche? (C)\n20 Versuche? (D)\nEigene Versuchsanzahl? (E)\nBeenden? (F)" << endl;
mouseInit();
showCursor();
bool running = true;
do
{
DWORD count;
INPUT_RECORD ir;
ReadConsoleInput(GetStdHandle(STD_INPUT_HANDLE),&ir,1,&count);
switch(ir.EventType)
{
case KEY_EVENT:
cin >> Auswahl_Anfang;//cin erfordet eine Eingabe von euch
switch(Auswahl_Anfang)//switch ist ein schalte, jenachdem was ihr eingegeben habt führt er aus.
{
case('a')://wenn ihr "a" eingegeben habt
system("cls");
cout << " Ihr Habt Unendlich Versuche gewaehlt" << endl;
max_versuche = 1000000000;//versuchsanzahl wird an ZahlenRaten() weitergegeben
ZahlenRaten();
case('b')://wenn ihr "b" eingegeben habt
system("cls");
cout << " Ihr Habt 10 Versuche gewaehlt" << endl;
max_versuche = 10;
ZahlenRaten();//führt ZahlenRaten() aus
case('c')://wenn ihr "c" eingegeben habt
system("cls");
cout << " Ihr Habt 15 Versuche gewaehlt" << endl;
max_versuche = 15;
ZahlenRaten();
case('d'):
system("cls");
cout << " Ihr Habt 20 Versuche gewaehlt" << endl;
max_versuche = 20;
ZahlenRaten();
case('e'):
system("cls");
cout << " Ihr gebt eure Eigene Versuchsanzahl an " << endl;
Versuche_Eigene();//führt Versuche_Eigene() aus
case('f'):
exit(0);// Gibt dem Programm den Befehl, zu Beenden
default://Falls keines der oben stehenden Möglichkeiten zutrifft
cout << "Falsche Eingabe!\n(A), (B) oder (C) oder (D) oder (E) in Kleinbuchstaben bitte" << endl;//führt er cout aus, also gibt den TExt wieder
Falsche_Eingabe_Anfang();//und führt danach Falsche_Eingabe_Anfang aus.
}
case MOUSE_EVENT:
if((ir.Event.MouseEvent.dwMousePosition.X = 32) & (ir.Event.MouseEvent.dwMousePosition.Y = 280) & ir.Event.MouseEvent.dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED)
{
system("cls");
cout << "Unendlich versuche wurden gewaehlt" << endl;
max_versuche = 1000;
ZahlenRaten();
} if((ir.Event.MouseEvent.dwMousePosition.X = 32) && (ir.Event.MouseEvent.dwMousePosition.Y = 281) && ir.Event.MouseEvent.dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED)
{
system("cls");
cout << " Ihr Habt 10 Versuche gewaehlt" << endl;
max_versuche = 10;
ZahlenRaten();
} if((ir.Event.MouseEvent.dwMousePosition.X = 32) && (ir.Event.MouseEvent.dwMousePosition.Y = 283) && ir.Event.MouseEvent.dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED)
{
system("cls");
cout << " Ihr Habt 15 Versuche gewaehlt" << endl;
max_versuche = 15;
ZahlenRaten();
} if((ir.Event.MouseEvent.dwMousePosition.X = 32) && (ir.Event.MouseEvent.dwMousePosition.Y = 284) && ir.Event.MouseEvent.dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED)
{
system("cls");
cout << " Ihr Habt 10 Versuche gewaehlt" << endl;
max_versuche = 20;
ZahlenRaten();
} if((ir.Event.MouseEvent.dwMousePosition.X = 32) && (ir.Event.MouseEvent.dwMousePosition.Y = 285) && ir.Event.MouseEvent.dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED)
{
system("cls");
cout << " Ihr gebt eure Eigene Versuchsanzahl an" << endl;
Versuche_Eigene();
} if((ir.Event.MouseEvent.dwMousePosition.X = 32) && (ir.Event.MouseEvent.dwMousePosition.Y = 286) && ir.Event.MouseEvent.dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED)
{
exit(0);
}
break;
}
}
while(running);
}
Das Programm funktioniert ansonsten einwandfrei, alles nach plan, bis auf wenn ich mit der Maus agiere, immer nur die erste fkt ausgeführt wird.
Hab sogar probiert, ir.Event.MouseEvent.dwMousePosition.X == 32 zu schreiben, anstatt einem =
PS: ist ne konsolenanwendung und mit microsoft c++ 2010 express erstellt
Danke schonmal :D
Edit: Achja, ich hab natürlich alles includiert ;)
es ist nix rot unterstrichen
steht im code oben aber nicht dran