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;
}