控制台上识别鼠标点击位置坐标

来源:互联网 发布:黄冈市5g网络规划建设 编辑:程序博客网 时间:2024/04/27 03:06


原文地址:http://tieba.baidu.com/p/2609166559


#include<windows.h>HANDLE hInput;  /*  获取标准输入设备句柄 */INPUT_RECORD inRec;/*  返回数据记录 */DWORD numRead; /*  返回已读取的记录数 */int Y,X;/* X和Y的坐标 */int input(){while(1){COORD pos = {0,0};ReadConsoleInput(hInput, &inRec, 1, &numRead);pos = inRec.Event.MouseEvent.dwMousePosition;Y=(int)pos.Y;X=(int)pos.X;if (inRec.EventType == MOUSE_EVENT && inRec.Event.MouseEvent.dwEventFlags  == RIGHTMOST_BUTTON_PRESSED)  /* 鼠标左键双击 */return 1;if (inRec.EventType == MOUSE_EVENT && inRec.Event.MouseEvent.dwButtonState == RIGHTMOST_BUTTON_PRESSED) /* 鼠标右键单击 */return 2;if (inRec.EventType == MOUSE_EVENT && inRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) /* 鼠标左键单击 */{if(X>1&&X<80&&Y==0) /* 第一行 */return 3;else if(X>1&&X<80&&Y==1) /* 第二行 */return 4; }}} void HideCursor()//隐藏控制台的光标 {CONSOLE_CURSOR_INFO cursor_info = {1, 0}; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);}int main(){ int rt;HideCursor(); //隐藏控制台的光标 HWND hwnd=FindWindow(L"ConsoleWindowClass",NULL);/*  控制台窗口句柄 */hInput = GetStdHandle(STD_INPUT_HANDLE); /*  输入设备句柄 */while(1){ReadConsoleInput(hInput, &inRec, 1, &numRead); /* 读取1个输入事件 */switch(inRec.EventType){case MOUSE_EVENT:{rt=input();switch(rt){case 1:MessageBox(hwnd,L"双击操作",L"111",0);break;case 2:MessageBox(hwnd,L"右键单击",L"222",0);break;case 3:MessageBox(hwnd,L"左键单击第一行",L"333",0);break;case 4:MessageBox(hwnd,L"左键单击第二行",L"444",0);break;}}break;}}} 




0 0
原创粉丝点击