17-02-2006, 15:28
|
|
|
חבר מתאריך: 17.02.06
הודעות: 1
|
|
mouse events and system("cls") problem
אני עשיתי שימוש בקוד הבא והוא פעל מצויין חוץ ממקרה אחד. אירועי העכבר ,בלבד, לא עובדים אם כותבים לפני הקוד הבא את הפקודה:
system("cls");
איך אני יכול להתגבר על הבעיה הזאת?
הקוד:
HANDLE hInput;
INPUT_RECORD ir;
unsigned long nEvents;
printf("Hit Escape to view other stuff...\n\n");
hInput = GetStdHandle(STD_INPUT_HANDLE);
while (1)
{
ReadConsoleInput(hInput, &ir, 1, &nEvents);
if (ir.EventType == MOUSE_EVENT)
{
printf("Mouse Event: nEvents=%d x=%d y=%d button state=%ld\n",
nEvents,
ir.Event.MouseEvent.dwMousePosition.X,
ir.Event.MouseEvent.dwMousePosition.Y,
ir.Event.MouseEvent.dwButtonState);
}
else if (ir.EventType == KEY_EVENT)
{
printf("Keyboard Event: Events=%d bKeyDown=%d dwControlKeyState=%d"
" uChar=%d wRepeatCount=%d wVirtualKeyCode=%d wVirtualScanCode=%d\n",
nEvents, ir.Event.KeyEvent.bKeyDown, ir.Event.KeyEvent.dwControlKeyState,
ir.Event.KeyEvent.uChar, ir.Event.KeyEvent.wRepeatCount,
ir.Event.KeyEvent.wVirtualKeyCode, ir.Event.KeyEvent.wVirtualScanCode,
ir.Event.MouseEvent.dwMousePosition.X,
ir.Event.MouseEvent.dwMousePosition.Y,
ir.Event.MouseEvent.dwButtonState);
if (ir.Event.KeyEvent.wVirtualKeyCode == ESC)
break;
}
else if (ir.EventType == FOCUS_EVENT)
{
printf("Focus Event: nEvents=%d bSetFocus=%d\n",
nEvents, ir.Event.FocusEvent.bSetFocus);
}
}
printf("press any key to continue...");
getch();
|