mouse pointer
Cassio Butrico via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Jun 5 19:56:35 PDT 2015
import std.stdio;
import core.sys.windows.windows;
int main(string[] args)
{
HANDLE hIn;
HANDLE hOut;
auto MouseWhere = COORD (18, 0);
auto DClickWhere = COORD (18, 1);
auto clickwher = COORD (18, 2);
bool Continue = TRUE;
DWORD EventCount;
int LoopCount = 0;
int KeyEvents = 0;
INPUT_RECORD InRec;
DWORD NumRead;
hIn = GetStdHandle(STD_INPUT_HANDLE);
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
writeln("Mouse is at = ");
writeln("Double Click at = ");
write ("Click at = ");
stdout.flush();
while (Continue)
{
Sleep(10); // To slow it down!!
GetNumberOfConsoleInputEvents(hIn,&EventCount);
while (EventCount > 0)
{
ReadConsoleInputA(hIn,&InRec,1,&NumRead);
if (InRec.EventType == KEY_EVENT)
{
if (InRec.KeyEvent.wVirtualKeyCode == VK_ESCAPE)
{
Continue = FALSE;
}
}
else if (InRec.EventType == MOUSE_EVENT)
{
if (InRec.MouseEvent.dwEventFlags == MOUSE_MOVED)
{
SetConsoleCursorPosition(hOut, MouseWhere);
write(InRec.MouseEvent.dwMousePosition.X ," :
");
write(InRec.MouseEvent.dwMousePosition.Y ,"
");
stdout.flush();
}
else if (InRec.MouseEvent.dwEventFlags ==
DOUBLE_CLICK)
{
SetConsoleCursorPosition(hOut, DClickWhere);
write(InRec.MouseEvent.dwMousePosition.X ," :
");
write(InRec.MouseEvent.dwMousePosition.Y ,"
");
stdout.flush();
}
else if(InRec.MouseEvent.dwButtonState &
FROM_LEFT_1ST_BUTTON_PRESSED)
{
SetConsoleCursorPosition(hOut, clickwher);
write(InRec.MouseEvent.dwMousePosition.X ," :
");
write(InRec.MouseEvent.dwMousePosition.Y ,"
");
stdout.flush();
}
}
GetNumberOfConsoleInputEvents(hIn,&EventCount);
}
}
return 0;
}
More information about the Digitalmars-d-learn
mailing list