快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

c语言鼠标控制函数 c语言鼠标功能函数

C语言怎样用鼠标控制播放一首歌?

你是想问通过控制鼠标操作播放器播放歌(类似按键精灵那样重复用户操作)。还是直接播乱配放音乐文件。

创新互联2013年开创至今,先为同仁等服务建站,同仁等地企业,进行企业商务咨询服务。为同仁企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

两哗笑指种都升掘需要window API支持。

一、直接播放文件,可用函数playSound,头文件windows.h和mmsystem.h。(注意不是支持所有文件格式)。

二、控制鼠标模拟操作:

1、鼠标点击操作可用SendInput函数或keybd_event函数。

2、鼠标移动可用SetCursorPos或mouse_event。

三、通过FundWindow函数获取播放软件的窗口句柄,再通过FindWindowEx遍历窗口下所有控件,直接对窗口控件发送消息。

谁有c语言的鼠标操作函数集

分类: 电脑/网络 程序设计 其他编程语言

问题描述:

谁有c语言的鼠标操作函数集,越多越好

解析:

我给你个程序,里面涉及到鼠标操作团悉,具体你可以下载《DOS编程大全》这本书,有关于鼠标的。

还不懂,加我QQ(先声明我也是菜鸟):***********。注明:C语言

#includedos.h

#includegraphics.h

#includeconio.h

#includestdio.h

union REGS regs;

int X__max,Y__max,x_max,y_max;

void Initgr(void) /*屏幕初始化成图形模式*/

{

int w,h,grdriver=DETECT,grmode;

registerbgidriver(EGAVGA_driver);

initgraph(grdriver,grmode,"");/*在双引号中可加你tc放的路径,但要在tc里有EGAVGA.BGI这个来初始图形*/

if(graphresult())/*若调用不成功,退出*/

{printf("\n 调用失败!\则枝n");

exit(1);

}

X__max=getmaxx();/*求横向象点坐标数*/

Y__max=getmaxy();/*求纵向象点坐标数*/

getaspectratio(w,h);/*求纵横比*/

x_max=1000; /*设置屏幕坐标的宽度*/

y_max=x_max*(float)Y__max*h/((float)X__max*w);

}

int Msinit(int Xlo,int Xhi,int Ylo,int Yhi)/*鼠标初始化*/

{int retcode;

regs.x.ax=0;/塌盯乎*初始化鼠标*/

int86(0x33,regs,regs);

retcode=regs.x.ax;

if(retcode==0) return 0;

regs.x.ax=7;/*设置鼠标X方向的移动范围*/

regs.x.cx=Xlo;

regs.x.dx=Xhi;

int86(0x33,regs,regs);

regs.x.ax=8;/*设置鼠标Y方向的移动范围*/

regs.x.cx=Ylo;

regs.x.dx=Yhi;

int86(0x33,regs,regs);

regs.x.ax=15;/*设置mickey与象素的比,这各会影响鼠标移动速度*/

regs.x.cx=(int)(x_max/X__max);

regs.x.dx=(int)(y_max/Y__max);

int86(0x33,regs,regs);

return retcode;

}

int Msread(int *px,int *py,int *pbuttons)/*读鼠标位置及状态*/

{static int x0=320,y0=240,but0=0;

int xnew,ynew,ch;

do{

if(kbhit()){

ch=getch();

if(ch==13){

*pbuttons=1;

return -1;

}

else return ch; /*返回键盘输入*/

}

regs.x.ax=3; /*调用功能3,读鼠标位置及状态*/

int86(0x33,regs,regs);

xnew=regs.x.cx;/*返回鼠标当前的位置的X坐标*/

ynew=regs.x.dx;/*返回鼠标当前的位置的Y坐标*/

*pbuttons=regs.x.bx;/*返回鼠标当前的状态*/

}while(xnew==x0ynew==y0*pbuttons==but0);

/*当鼠标状态改变或位置改变终止循环*/

but0=*pbuttons;/*将鼠标状态保存到静态变量中*/

x0=xnew;y0=ynew;/*将鼠标位置保存到静态变量中*/

*px=xnew;*py=(int)(y_max-ynew);

return -1;

}

int Xpixel(int x)/*由象素坐标变换为屏幕坐标*/

{ return (int)((long)X__max*x/x_max);}

int Ypixel(int y)

{ return Y__max-(int)((long)Y__max*y/y_max);}

void Cursor(int x,int y) /*显示十字光标*/

{int X=Xpixel(x),Y=Ypixel(y),color;

char *str=" \0";

line(X-8,Y,X-3,Y);

line(X,Y-8,X,Y-4);

line(X+3,Y,X+8,Y);

line(X,Y+4,X,Y+8);

color=getcolor();

setcolor(BLACK);

outtextxy(X__max-100,10,str);/*删除前次显示值*/

sprintf(str,"%d,%d",x,y);

setcolor(WHITE);

outtextxy(X__max-100,10,str);/*在屏幕右上角显示当前光标的坐标*/

setcolor(color);

}

main()

{int buttons,X,Y,x,y,a,b;

char i;

Initgr();/*初始化图形屏幕*/

setcolor(EGA_LIGHTRED);/*设置屏幕前景色*/

line(1,1,X__max-1,1); /*在屏幕四周画一矩形*/

line(1,1,1,Y__max-1);

line(X__max-1,1,X__max-1,Y__max-1);

line(1,Y__max-1,X__max-1,Y__max-1);

setcolor(EGA_WHITE);

printf("\n 按鼠标右键终止程序\n");

printf(" 然后按任意键退出");

seritemode(XOR_PUT);/*设置屏幕输出模式*/

Msinit(0,(int)x_max,0,(int)y_max);/*初始化鼠标*/

a=x_max;b=y_max;

x=0;

Cursor(a,b); /*在a=x_max;b=y_max;处画指针*/

while(x!=2)

{Msread(X,Y,x);

Cursor(a,b); /*删除之前的鼠标,因为屏幕输出模式的关系*/

if(x==1){

a=(int)(X*1.0/x_max*X__max);b=(int)((y_max-Y)*1.0/y_max*Y__max);

circle(a,b,1); } /*画点*/

Cursor(X,Y);

a=X;b=Y;

}

Cursor(X,Y);/*再调用一次把原来的指针削掉*/

getch();

closegraph();

}

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语言鼠标控制函数 c语言鼠标功能函数
分享地址:http://6mz.cn/article/ddpihcd.html

其他资讯