|
| 1 | +#include<windows.h> |
| 2 | +HANDLE hInput; /* 获取标准输入设备句柄 */ |
| 3 | +INPUT_RECORD inRec;/* 返回数据记录 */ |
| 4 | +DWORD numRead; /* 返回已读取的记录数 */ |
| 5 | +int Y,X;/* X和Y的坐标 */ |
| 6 | +int input() |
| 7 | +{ |
| 8 | + while(1){ |
| 9 | + COORD pos = {0,0}; |
| 10 | + ReadConsoleInput(hInput, &inRec, 1, &numRead); |
| 11 | + pos = inRec.Event.MouseEvent.dwMousePosition; |
| 12 | + Y=(int)pos.Y; |
| 13 | + X=(int)pos.X; |
| 14 | + if (inRec.EventType == MOUSE_EVENT && inRec.Event.MouseEvent.dwEventFlags == RIGHTMOST_BUTTON_PRESSED) /* 鼠标左键双击 */ |
| 15 | + return 1; |
| 16 | + if (inRec.EventType == MOUSE_EVENT && inRec.Event.MouseEvent.dwButtonState == RIGHTMOST_BUTTON_PRESSED) /* 鼠标右键单击 */ |
| 17 | + return 2; |
| 18 | + if (inRec.EventType == MOUSE_EVENT && inRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) /* 鼠标左键单击 */ |
| 19 | + { |
| 20 | + if(X>1&&X<80&&Y==0) /* 第一行 */ |
| 21 | + return 3; |
| 22 | + else if(X>1&&X<80&&Y==1) /* 第二行 */ |
| 23 | + return 4; |
| 24 | + } |
| 25 | + } |
| 26 | +} |
| 27 | +void HideCursor()//隐藏控制台的光标 |
| 28 | +{ |
| 29 | + CONSOLE_CURSOR_INFO cursor_info = {1, 0}; |
| 30 | + SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info); |
| 31 | +} |
| 32 | +int main() |
| 33 | +{ |
| 34 | + int rt; |
| 35 | + HideCursor(); //隐藏控制台的光标 |
| 36 | + HWND hwnd=FindWindow("ConsoleWindowClass",NULL);/* 控制台窗口句柄 */ |
| 37 | + hInput = GetStdHandle(STD_INPUT_HANDLE); /* 输入设备句柄 */ |
| 38 | + while(1){ |
| 39 | + ReadConsoleInput(hInput, &inRec, 1, &numRead); /* 读取1个输入事件 */ |
| 40 | + switch(inRec.EventType) |
| 41 | + { |
| 42 | + case MOUSE_EVENT: |
| 43 | + { |
| 44 | + rt=input(); |
| 45 | + switch(rt){ |
| 46 | + case 1: |
| 47 | + MessageBox(hwnd,"双击操作","111",0); |
| 48 | + break; |
| 49 | + case 2: |
| 50 | + MessageBox(hwnd,"右键单击","222",0); |
| 51 | + break; |
| 52 | + case 3: |
| 53 | + MessageBox(hwnd,"左键单击第一行","333",0); |
| 54 | + break; |
| 55 | + case 4: |
| 56 | + MessageBox(hwnd,"左键单击第二行","444",0); |
| 57 | + break; |
| 58 | + } |
| 59 | + } |
| 60 | + break; |
| 61 | + } |
| 62 | + } |
| 63 | +} |
0 commit comments