|
#include<windows.h>
#include<iostream>
using namespace std;
void main(){
HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);//ДИСКРИПТОР ВЫВОДА НА ЭКРАН
HANDLE h_in=GetStdHandle(STD_INPUT_HANDLE);//ДИСКРИПТОР ВВОДА (для мыши)
COORD c;//кординаты курсора
SetConsoleMode(h_in,ENABLE_MOUSE_INPUT);//Включает мышку, принимает 2 параметра, дискриптор ввода и и флажок ENABLE_MOUSE_INPUT
INPUT_RECORD all_events[256];//массив событий
DWORD real_event;//реально произошедшие события
//Массив типа INPUT_RECORD хранилище для произошедших событий- уведомлений от кл или мышки
//необходимо создать переменную DWORD в которую запишеться количество реально произошедших событий за 1 милисекунду
while(1)
{//для постоянной работы мыши
//необходимо запустить вечный цик в котором будет постояно происходить считывание сабытый
ReadConsoleInput(h_in,all_events,256,&real_event);
for(int i=0;i<real_event;i++)//просмотр всех произошедших событий
{c.X=all_events[i].Event.MouseEvent.dwMousePosition.X;
c.Y=all_events[i].Event.MouseEvent.dwMousePosition.Y;
COORD temp ={0,0};COORD temp1 ={0,2};
SetConsoleCursorPosition(h,temp);cout<<"\t\t\t\t\t\t\t\t";
SetConsoleCursorPosition(h,temp);
cout<<c.X<<"\t"<<c.Y<<"\n\n";
if (c.X<30&&all_events[i].Event.MouseEvent.dwEventFlags==DOUBLE_CLICK)
{SetConsoleCursorPosition(h,temp1);cout<<"\t\t\t\t\t\t\t\n";SetConsoleCursorPosition(h,temp1);cout<<"DOUBLE_CLICK\n";}
else if (c.X>40&&all_events[i].Event.MouseEvent.dwButtonState==FROM_LEFT_1ST_BUTTON_PRESSED)
{SetConsoleCursorPosition(h,temp1);cout<<"\t\t\t\t\t\t\t\n";SetConsoleCursorPosition(h,temp1);cout<<"LKM\n";}
//dwButtonState поле отвечающие за нажатою кнопку FROM_LEFT_1ST_BUTTON_PRESSED - левая кнопка RIGHT_MOST_BUTTON_PRESSED- ПРАВАЯ
//dwButtonState за место него.dwEventFlags =DOUBLE_CLICK ДВОЙНОЙ ШЕЛЧек
}}}
#include<windows.h>
#include<iostream>
using namespace std;
void main(){
HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);//ДИСКРИПТОР ВЫВОДА НА ЭКРАН
HANDLE h_in=GetStdHandle(STD_INPUT_HANDLE);//ДИСКРИПТОР ВВОДА (для мыши)
COORD c;//кординаты курсора
SetConsoleMode(h_in,ENABLE_MOUSE_INPUT);//Включает мышку, принимает 2 параметра, дискриптор ввода и и флажок ENABLE_MOUSE_INPUT
INPUT_RECORD all_events[256];//массив событий
DWORD real_event;//реально произошедшие события
//Массив типа INPUT_RECORD хранилище для произошедших событий- уведомлений от кл или мышки
//необходимо создать переменную DWORD в которую запишеться количество реально произошедших событий за 1 милисекунду
while(1)
{//для постоянной работы мыши
//необходимо запустить вечный цик в котором будет постояно происходить считывание сабытый
ReadConsoleInput(h_in,all_events,256,&real_event);
for(int i=0;i<real_event;i++)//просмотр всех произошедших событий
{c.X=all_events[i].Event.MouseEvent.dwMousePosition.X;
c.Y=all_events[i].Event.MouseEvent.dwMousePosition.Y;
COORD temp ={0,0};
/*SetConsoleCursorPosition(h,temp);cout<<"\t\t\t";
SetConsoleCursorPosition(h,temp);
*///cout<<c.X<<"\t"<<c.Y<<"\n\n";
//if (c.X<7540&&all_events[i].Event.MouseEvent.dwEventFlags==DOUBLE_CLICK){cout<<"DOUBLE_CLICK\n";}
if (c.X<75&&all_events[i].Event.MouseEvent.dwButtonState==FROM_LEFT_1ST_BUTTON_PRESSED){SetConsoleTextAttribute(h,1);SetConsoleCursorPosition(h,c); cout<<"@";}
else if (c.X<75&&all_events[i].Event.MouseEvent.dwButtonState==RIGHTMOST_BUTTON_PRESSED){SetConsoleTextAttribute(h,12);SetConsoleCursorPosition(h,c);cout<<"#";}
// dwButtonState поле отвечающие за нажатою кнопку FROM_LEFT_1ST_BUTTON_PRESSED - левая кнопка RIGHT_MOST_BUTTON_PRESSED- ПРАВАЯ
//dwButtonState за место него.dwEventFlags =DOUBLE_CLICK ДВОЙНОЙ ШЕЛЧек
}}}
Пример работы 1 куска кода 2 кусок кода..
Вроде все что надо в коментах если что звякни в скайп
Дата добавления: 2015-10-21; просмотров: 95 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
| |