Maus in Console
-
hi,
ich programmiere mit Visual Studio
wie kann ich in der Console Maustasten auswerten z.b
hab ich einen Menüpunkt
cout<<"1. Tue was"<<endl;
switch(wahl)
{
case '1':
{
tue_was();
}
}wie würde das Code teschnnisch aussehen , wenn ich mit der maus über den Menüpunkt fahre das der sich verfärbt und wenn ich drauf klicke ich in das Menü rein komme...
danke für eure hilfe !!!! xD
-
mal die erste links..
http://www.cs.umu.se/kurser/TDBB09/VT01/console/writein.c
http://www.tutorials.de/forum/1001953-post9.html
-
cool danke ^^
also das zweite mit den x und y koordinaten funktioniert, nur der erste Links das Prog funzt nich weil er die "console.h" nich findet....
was hat es mit der aufsich ?
-
ich hab das mal mit den x und y koordinaten probiert (also das auß dem zweiten link)..das funktioniert auch alles wunderbar
nur nachdem ich bestimmten koordianten abfrage, die bedung stimmt und ich den Bildschrim lösche und ein anderes Menü aufrufe ist das abfragen nicht mehr verfügbar, kann mir jemand sagen was ich falch mache.....oder muss ich vielleicht irgendein befehl ausführen ?!?!?!?
danke !!! ^^
-
Dieser Thread wurde von Moderator/in estartu aus dem Forum MFC (Visual C++) in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Schau mal in den FAQ...
Hab meinen guten Tag:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-86411.html
http://www.c-plusplus.net/forum/viewtopic-var-t-is-86415.html
-
danke dir schonmal xD
nur in dem Code ist das Problem auch nicht gelöst
hier ist mal der Quelltect aus dem Link und ich hab mal kommis rein gemacht um erkenntlicher zu machen was ich meine
#include <windows.h>
#include <iostream>
using namespace std;
// Initialisiert die Maus und gibt die Anzahl der Maustasten zurück
DWORD mouseInit ()
{
DWORD mode;
GetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),&mode);
SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),mode|ENABLE_MOUSE_INPUT);DWORD buttons;
GetNumberOfConsoleMouseButtons(&buttons);return buttons;
}// Zeigt oder versteckt den Mauscursor
void showCursor (bool show = true)
{
ShowCursor(show);
}int main ()
{
mouseInit();
showCursor();
cout<<"Hallo"<<endl;\\Gibt Hallo aus --> Buchstabe H hat pos Y=0 und X=0
bool running = true;
do
{
DWORD count;
INPUT_RECORD ir;
ReadConsoleInput(GetStdHandle(STD_INPUT_HANDLE),&ir,1,&count);switch(ir.EventType)
{
case KEY_EVENT:
{
//running = false; // Beenden bei Tastendruck
break;
}case MOUSE_EVENT:
{
if(ir.Event.MouseEvent.dwMousePosition.X == 0 && ir.Event.MouseEvent.dwMousePosition.Y == 0 && ir.Event.MouseEvent.dwButtonState == 1) \\wenn die Position Y=0 und X=0 angeklickt wird, öffnet sich der case
{
system("cls");\\dort wird bildschrim gelöscht
cout<<"test"<<endl; \\hier wird test ausgegeben, nur kann ich jetzt die maus nicht mehr abfragen , der cursor verschwindet-> was muss ich hier tun damit ich z.b das "t" auswerten kann wenn es gedrückt wird ?????
}
break;
}
}
}
while(running);
return 0;
}
-
ich habe herausgefunden, das wenn ich einen Tastendruck auswerte und ein system("cls") ausführe, dass abfragen der Maus nicht mehr funktioniert
was kann ich dagegen tun, weil ich will ja trotzdem den Bildschirm löschen ???
-
ich hab es herausgefunden...
sobal man einen System cls ausführt ist der mousecursor nicht mehr aktiv
um ihn nach einem system cls wieder verwenden zu können einfach nach dem cls folgenden code wiederholen :
GetConsoleMode(hStdIn, &dwMode);
SetConsoleMode(hStdIn, dwMode|ENABLE_MOUSE_INPUT);