لطفا يكي بهم كمك كنه! بدجوري گيرشم واسه همين هم اينجا عضو شدم. بگيد ماوس رو چجوري ميشه در vC++ شناسايي كرد و محل مختصات كليك اون رو به دست آورد.
Printable View
لطفا يكي بهم كمك كنه! بدجوري گيرشم واسه همين هم اينجا عضو شدم. بگيد ماوس رو چجوري ميشه در vC++ شناسايي كرد و محل مختصات كليك اون رو به دست آورد.
اگه می خوای بفهمی تو برنامه خودت کلیک می شه که راحته. باید از event اسفاده کنی
اگه می خوای تو تمامی پنجره ها کلیک ماوس رو بفهمی، باید ماوس رو هوک کنی با SetWindowsHookEx
مختصات هم که از تابع API
POINT pt;
GetCursorPos(&pt);
pt.x & pt.y مختصات رو دارن
اول هم windows.h یادت نره
سلام ميشه توضيحات را يكم اضافه كنين و با مثال توضيح بدين؟؟
من همين مشكل را دارم و بايد واسه پروژم پيداش كنم تا در پروژه ام استفاده كنم نميخواستم پست بزنم به همين خاطر جستجو كردم ديدم عنوان اينجا نسبتا با مشكل من يكي هست لطفا بيشتر راهنماييم كنين و يكي هم اينكه چطوري ميشه اشكالي مثل مربع و مستطيل رسم كرد؟؟
سلام، من كلي گشتم اين دستوران رو پيدا كردم، اميدوارم به دردت بخورند،
#include<iostream>
#include<windows.h>
#include<stdio.h>
using namespace std;
void gotoxy(int x,int y);
void GetMousePosWin(long &x, long &y);
int main()
{
long int a=20,b=20;
gotoxy(20,5);
cout<<"_____";
gotoxy(20,7);
cout<<"_____";
while(1)
{
gotoxy(0,0);
GetMousePosWin(a,b);
cout<<"\r\t\t\t";
cout<<"\r"<<a<<"\t"<<b<<endl;
}
return 0;
}
void GetMousePosWin(long &x, long &y)
{
// creates the handle i need to use
HANDLE OutputH;
INPUT_RECORD Inrec;
DWORD evRead;
HANDLE hStdIn;
DWORD dwMode;
bool Captured=false;
//GetConsoleMode(hStdIn, &dwMode);
hStdIn = GetStdHandle(STD_INPUT_HANDLE);
GetConsoleMode(hStdIn, &dwMode);
SetConsoleMode(hStdIn, (dwMode & (ENABLE_MOUSE_INPUT)));
// grab the handle to the console so i can use it
OutputH = GetStdHandle(STD_OUTPUT_HANDLE);
do
{
PeekConsoleInput(hStdIn, &Inrec, 1, &evRead);
if(evRead>0)
{
ReadConsoleInput(hStdIn, &Inrec, 1, &evRead);
switch (Inrec.EventType )
{
case MOUSE_EVENT:
Captured = true;
break;
case KEY_EVENT:
Captured = true;
break;
}
}
} while(!Captured);
x= Inrec.Event.MouseEvent.dwMousePosition.X ;
y= Inrec.Event.MouseEvent.dwMousePosition.Y ;
if(Inrec.Event.MouseEvent.dwButtonState==1)//left MouseDown=1 & right MouseDown=2
{
if((x>=20)&&(y>=5)&&(x<=24)&&(y<=7))
{
cout<<"\nFGJH";
}
}
}
void gotoxy(int x,int y) /* tabe gotoxy curser ro be mokhtasate khasi mibare gotoxy 2 argoman dare ke x baraye satr va y baraye sootoon ast*/
{
HANDLE hConsole = GetStdHandle ( STD_OUTPUT_HANDLE );
if (INVALID_HANDLE_VALUE != hConsole)
{
COORD pos = {x,y};
SetConsoleCursorPosition( hConsole, pos );
}
}