Event Puffer leeren?
-
Hi,
wie kann man den Event Puffer leeren, vllt mit flush...kA hab mit google gesucht und nichts gefunden.
Also hier das beispiel damit ihr versteht was ich meine:if (mPos.x > x && mPos.x < y) { if (mPos.y > x && mPos.y < a) { INPUT_RECORD inRec; DWORD nCnt = 0; BOOL bOK = ReadConsoleInput(hcon, &inRec, 1, &nCnt); if(bOK && nCnt == 1) { if(inRec.EventType == MOUSE_EVENT) { if(inRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) //tu irgendwas } } }
funzt auch eigentlich, also wenn man die maus an entsprechender stelle hat, und dann die linke maustaste drückt, dann trifft das if letzte if zu, und er tut irgendwas, leider trifft das letze if auch zu, wenn ich erstmal irgenwo hhinklicke, und dann erst die maus auf die stelle halte.
hoffe ihr habt das problem verstanden.
mfg
-
Nein, die Events kannst du nicht löschen, sondern nur entsprechend reagieren.
Du mußt dir halt die Position beim ersten MouseButtonPressed merken und evtl. auf ein MouseMove reagieren.Habe gerade in der WinAPi-Hilfe nachgeschaut und die Funktion 'FlushConsoleInputBuffer' gefunden... (wobei ich nicht weiß, ob die dir wirklich hilft)
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum 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.
-
hat wirklcih niemand ne lösung?
oder ne andere Methode um abzufragen ob die Maustaste gedrückt wurde...mfg
-
Du musst mPos logischerweise aktualisieren. Also zuerst das if(), wenn es zutrifft dann mPos refresehen und dann das x/y-if!
MfG SideWinder
-
klappt auch nicht