Computer Tech
Finding the Coordinates in a Console - Printable Version

+- Computer Tech (http://computertech.createmybb3.com)
+-- Forum: Programming (/forumdisplay.php?fid=6)
+--- Forum: C, C++ (/forumdisplay.php?fid=7)
+--- Thread: Finding the Coordinates in a Console (/showthread.php?tid=150)



Finding the Coordinates in a Console - Scorch - 01-29-2011 07:29 PM

Here's a way to get the x and y values of your mouse in a console. It's neat to try, so compile it!

Code:
#include <windows.h>
#include <iostream>

int main()
{
    HANDLE in;
    HANDLE out;
    COORD Mouse;

    Mouse.X = 30;
    Mouse.Y = 20;

    DWORD EventCount;
    int LoopCount = 0;
    int KeyEvents = 0;
    INPUT_RECORD rec;
    DWORD NumRead;

    in = GetStdHandle(STD_INPUT_HANDLE);
    out = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),13);
    std::cout <<"\nMouse is at  : " << "\n";

    for(;;)
    {
  Sleep(10);

  GetNumberOfConsoleInputEvents(in,&EventCount);
  while (EventCount > 0)
  {
  ReadConsoleInput(in,&rec,1,&NumRead);

    if (rec.EventType == MOUSE_EVENT)
    {

  if (rec.Event.MouseEvent.dwEventFlags == MOUSE_MOVED)
    {
    SetConsoleCursorPosition(out,Mouse);
    std::cout << rec.Event.MouseEvent.dwMousePosition.X << "," <<
    rec.Event.MouseEvent.dwMousePosition.Y << "  " << std::flush;
    }    
  }

    GetNumberOfConsoleInputEvents(in,&EventCount);
  }
    }

    return 0;
}



RE: Finding the Coordinates in a Console - Hidden Dragon - 01-29-2011 10:03 PM

Is there any reason you use for(;;) instead of while(true)?


RE: Finding the Coordinates in a Console - Scorch - 01-30-2011 06:25 AM

It's personal preference. They both should loop forever, so it doesn't matter what you choose.