c语言鼠标点击函数源代码 c语言如何获取鼠标点击位置

C语言是怎样实现鼠标事件控制的?可不可以用纯C做?

可以,需要调用windowsAPI函数。

创新互联长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为南京企业提供专业的网站制作、网站建设,南京网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

头文件windows.h。

简单思路:

通过GetStdHandle获取标准输入句柄。

再通过ReadConsokeInput将输入信息存储到结构体类型INPUT_RECODE变量中。

再通过判断,截取到鼠标电击的事件。

具体API函数、参数、功能还有很多。需要网上找资料可以学。

我这里就简单写一个,鼠标点击控制台任意位置,并在该位置打印字符串。

#include stdio.h

#include windows.h

int main()

{

HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE); // 获取标准输入设备句柄

INPUT_RECORD inRec;

DWORD res;

COORD p0;

while(1)

{

ReadConsoleInput(hInput, inRec, 1, res);

if (inRec.EventType == MOUSE_EVENT  inRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) //鼠标左键

{

p0.X=inRec.Event.MouseEvent.dwMousePosition.X;

p0.Y=inRec.Event.MouseEvent.dwMousePosition.Y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);

printf("你在这里点击的左键\n");

}

}

return 0;

}

C语言鼠标操作

我之前给别人写过一个打地鼠的小游戏,就是用鼠标操作的。发给你参考下。代码很简单。

主要函数我在下方说明了,但更多信息你必须自己百度看,一言两语说不完。

SetConsoleCursorPosition函数可以定位光标位置,也就是文字内容显示的起点。

ReadConsoleInput(HANDLE hConsoleInput,*INPUT_RECORD lpBuffer,DWORD nLength,

DWORD lpNumberOfEventsRead)函数可以获取鼠标的操作信息。

调用过上面函数后,lpBuffer由于是传址,所以其地址里的值就包含了鼠标信息。

lpBuffer.EventType == MOUSE_EVENT //判断是鼠标事件

lpBuffer.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED//判断是鼠标左键点击

两个判断一起就是鼠标左键点击的判断,其他事件参数你可以自己网上找。

#include stdio.h

#include stdlib.h

#include windows.h

#include conio.h

#include time.h

#include string.h

#include malloc.h

#define gSizek 30//区域大小宽度

#define gSizeg 20//区域大小高度

#define gBegin 3//活动区域起始行

int main()

{

int t=0,s0,s1,i,j,count=0,fen=0,row=0,clo=0;

char gameA[gSizeg][gSizek+1],fSave[10]={0};

SetConsoleTitle("打地鼠");

HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE); // 获取标准输入设备句柄

INPUT_RECORD inRec;

DWORD res;

COORD p0;

p0.X=0;

p0.Y=0;

srand(time(0));

s0= time(NULL);

strcpy(gameA[0],"            GAME");

strcpy(gameA[1],"未命中次数:0,计分:000000");

for(i=gBegin-1;igSizeg;i++)

{

for(j=0;jgSizek+1;j++)

{

if(igBegin-1  igSizeg-1  j0  jgSizek-1)

gameA[i][j]=' ';

else

gameA[i][j]=4;

if(j==gSizek)

gameA[i][j]=0;

}

}

for(i=0;igSizeg;i++)

printf("%s\n",gameA[i]);

while (1)

{

if(t=3)

{

if(row0  clo0)

gameA[row][clo]=' ';

row=rand()%(gSizeg-1);

clo=rand()%(gSizek-1);

s0= time(NULL);

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);

if(row3)

row=4;

if(clo1)

clo=1;

gameA[row][clo]=2;

for(i=0;igSizeg;i++)

{

//gameA[i][gSizeg+1]=0;

printf("%s\n",gameA[i]);

}

}

if(count==3)

{

p0.X=10;

p0.Y=8;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);

printf("GAME OVER!");

break;

}

s1= time(NULL);

t=s1-s0;

ReadConsoleInput(hInput, inRec, 1, res);

if (inRec.EventType == MOUSE_EVENT  inRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) //鼠标左键

{

if(inRec.Event.MouseEvent.dwMousePosition.X==clo  inRec.Event.MouseEvent.dwMousePosition.Y==row)

{

if(fen==0)

fen=1;

if(fen999999)

fen=999999;

else

fen=fen*2;

sprintf(fSave,"%06d",fen);

gameA[1][18]=0;

strcat(gameA[1],fSave);

}

else

{

count++;

fen=0;

gameA[1][11]=count+'0';

}

t=4;

}

}

while(1);

return 0;

}

C语言响应鼠标单击事件的函数吗

没有响应函数,而是消息,点击鼠标以后,系统扑捉到消息然后传递给应用程序的消息处理函数,消息处理函数,根据switch语句进行判断,在相应的case下自己编写函数。 switch(msg) { case:WM_LBUTTONDOWN 自己编写的函数或语句

用C语言如何实现鼠标自动点击?

通过WIN

API

连个按下

释放

函数

mouse_eventMOUSEEVENTF_LEFTDOWN0000

mouse_eventMOUSEEVENTF_LEFTUP0000


文章名称:c语言鼠标点击函数源代码 c语言如何获取鼠标点击位置
URL地址:http://cdiso.cn/article/dojedei.html

其他资讯