000
01.03.2006, 00:57 Uhr
Antialc
|
Hi
Ich will mit dem Befehl ReadConsoleInput() den Konsolenbuffer auslesen um damit zu erkenn ob die Maus an einer bestimmten Stelle gedrückt wurde. Das ganze klappt soweit ganz gut. Das Prob is nur, dass des in nem extra thread läuft. Und in der main habe ich ein getlline() paralell laufe. Ich hab zwar keine Ahnung warum aber sobald das getline kommt, kann ich nicht mehr auf den ir.Event.MouseEvent.dwButtonState zufreifen. Er gibt mir dann nur irgendwelche Zahlenkombinationen aus. Ich denke es liegt daran, dass getline irgendwie den buffer blockiert oder so. Ka wie die Befehle und Stream genau ablaufen.
Wär auf jeden Fall cool wenn Jemand ne Lösung wüsste wie ich trotz getline (oder mit einer Alternative) weiter auf ir.Event.MouseEvent.dwButtonState zugreifen kann.
C++: |
DWORD count; while(running()) { //PeekConsoleInput(ihandle, &ir, 1, &count); //FlushConsoleInputBuffer(ihandle); ReadConsoleInput(ihandle, &ir, 1, &count); //FlushConsoleInputBuffer(ihandle);
GetWindowRect(conwnd, &conrect); GetCursorPos(&mousepos);
switch(ir.EventType) { case MOUSE_EVENT: if(ir.Event.MouseEvent.dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED && ((mousepos.x-conrect.left > 565) && (mousepos.x-conrect.left < 595))&& ((mousepos.y-conrect.top > 25) && (mousepos.y-conrect.top < 35))) { //std::cout << "Left mousebutton pressed. "; MessageBox(NULL, "lol", "lol", MB_OK); } break; }
Sleep(500); }
|
-- Microsoft Visual C++.NET Version 7 |