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