c语言鼠标操作

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

下面我解释了主要功能,但是你要自己多读资料,不是三言两语就能看完的。

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

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

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

调用上述函数后,lpBuffer是一个地址,所以其地址中的值包含鼠标信息。

Lpbuffer。event type = = mouse _ event//确定是鼠标事件。

LP buffer . event . mouse event . dwbuttonstate = = from _ left _ 1st _ button _ pressed//判断点击了鼠标左键。

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

#包含?& ltstdio.h & gt

#包含?& ltstdlib.h & gt

#包含?& ltwindows.h & gt

#包含?& ltconio.h & gt

#包含?& lttime.h & gt

#包含?& ltstring.h & gt

#包含?& ltmalloc.h & gt

#定义?格西泽克?30//区域尺寸宽度

#定义?gSizeg?20//面积大小和高度

#定义?gBegin?3//活动区域的起始行

int?主()

{

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

夏尔?gameA[gSizeg][gSizek+1],fSave[10]= { 0 };

SetConsoleTitle(“重击仓鼠”);

手柄?hInput?=?GetStdHandle(STD _ INPUT _ HANDLE);?//?获取标准输入设备句柄。

输入_记录?inRec

DWORD?res

坐标?P0;

p0。x = 0;

p0。y = 0;

srand(time(0));

s0=?时间(空);

strcpy(gameA[0],"游戏");

Strcpy(gameA[1],"失误:0,得分:000000 ");

for(I = GB egin-1;我& ltgSizegi++)

{

for(j = 0;j & ltgSizek+1;j++)

{

如果(i & gtgBegin-1?& amp& amp?我& ltgSizeg-1?& amp& amp?j & gt0?& amp& amp?j & ltgSizek-1)

gameA[i][j]= '?';

其他

gameA[I][j]= 4;

if(j==gSizek)

gameA[I][j]= 0;

}

}

for(I = 0;我& ltgSizegi++)

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

什么时候?(1)

{

if(t & gt;=3)

{

if(row & gt;0?& amp& amp?clo & gt0)

gameA[row][clo]= '?';

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

clo = rand()%(GSI zek-1);

s0=?时间(空);

SetConsoleCursorPosition(GetStdHandle(STD _ OUTPUT _ HANDLE),P0);

if(row & lt;3)

row = 4;

if(clo & lt;1)

clo = 1;

gameA[row][clo]= 2;

for(I = 0;我& ltgSizegi++)

{

//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("游戏?完了!”);

打破;

}

s1=?时间(空);

t = s 1-s0;

ReadConsoleInput(hInput,& ampinRec,?1,?& ampRES);

如果?(inRec。EventType?==?鼠标_事件?& amp& amp?inRec。Event.MouseEvent.dwButtonState?==?FROM _ LEFT _ 1ST _ BUTTON _ PRESSED)?//鼠标左键

{

如果(inRec。event . mouse event . dw mouse position . x = = clo?& amp& amp?inRec。event . mouse event . dw mouse position . y = = row)

{

if(fen==0)

fen = 1;

if(fen & gt;999999)

fen = 999999

其他

fen = fen * 2;

sprintf(fSave,“%06d”,fen);

gameA[1][18]= 0;

strcat(gameA[1],fSave);

}

其他

{

count++;

fen = 0;

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

}

t = 4;

}

}

while(1);

回归?0;

}