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

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

我给你个程序,里面涉及到鼠标操作,具体你可以下载《DOS编程大全》这本书,有关于鼠标的。
还不懂,加我QQ(先声明我也是菜鸟):410224746。注明:C语言

#include<dos.h>
#include<graphics.h>
#include<conio.h>
#include<stdio.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,®s,®s);
retcode=regs.x.ax;
if(retcode==0) return 0;
regs.x.ax=7;/*设置鼠标X方向的移动范围*/
regs.x.cx=Xlo;
regs.x.dx=Xhi;
int86(0x33,®s,®s);
regs.x.ax=8;/*设置鼠标Y方向的移动范围*/
regs.x.cx=Ylo;
regs.x.dx=Yhi;
int86(0x33,®s,®s);
regs.x.ax=15;/*设置mickey与象素的比,这各会影响鼠标移动速度*/
regs.x.cx=(int)(x_max/X__max);
regs.x.dx=(int)(y_max/Y__max);
int86(0x33,®s,®s);
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,®s,®s);
xnew=regs.x.cx;/*返回鼠标当前的位置的X坐标*/
ynew=regs.x.dx;/*返回鼠标当前的位置的Y坐标*/
*pbuttons=regs.x.bx;/*返回鼠标当前的状态*/
}while(xnew==x0&&ynew==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(" 然后按任意键退出");
setwritemode(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)函数可以获取鼠标的操作信息。调用过上面函数后,lpB...

C语言鼠标移动
mouse_event( MOUSEEVENTF_LEFTDOWN, x,y,0,0 ); 左键按下 mouse_event( MOUSEEVENTF_RIGHTDOWN, x,y,0,0 ); 右键按下 如果要捕捉鼠标的移动,一般采用勾子程序,详情,请查阅鼠标勾子代码

C语言编写的计算器的程序 要实现鼠标操作哦
include <dos.h> \/*DOS接口函数*\/#include <math.h> \/*数学函数的定义*\/#include <conio.h> \/*屏幕操作函数*\/#include <stdio.h> \/*I\/O函数*\/#include <stdlib.h> \/*库函数*\/#include <stdarg.h> \/*变量长度参数表*\/#include <graphics.h> \/*图形函数*\/#include <string.h> \/*字符串函数*\/...

c语言 怎样模拟鼠标键盘操作?
函数原型:VOID keybd_event( BYTE bVk, BYTE bScan, DWORD dwFlags, DWORD dwExtraInfo );4个参数都是输入参数。bVk:键名,例如: VK_NUMPAD7,VK_BACK, VK_TAB,VK_SHIFT,VK_F1,。。。keybd_event(VK_MENU,0xb8,0 , 0); -- 按下Alt 键 keybd_event(VK_MENU,0xb8,KEYEVENTF_...

c语言鼠标状态怎么定义
void MouseSetXY(int x,int y) \/*设置鼠标的位置*\/ { _CX=x;_DX=y;_AX=0x04;geninterrupt(0x33);\/*设置完毕*\/ \/* Mouse 是我自己定义的存储鼠标当前位置的变量*\/ Mouse.x=x;Mouse.y=y;} void MouseGetXY() \/*获取鼠标的位置,存储在Mouse中*\/ { _AX=0x03;geninterrupt(0x...

c语言如何实现控制鼠标
简单思路:通过GetStdHandle获取标准输入句柄。再通过ReadConsokeInput将输入信息存储到结构体类型INPUT_RECODE变量中。再通过判断,截取到鼠标电击的事件。具体API函数、参数、功能还有很多。需要网上找资料可以学。我这里就简单写一个,鼠标点击控制台任意位置,并在该位置打印字符串。include <stdio.h>#...

C语言什么函数能发送鼠标移消息?postmessage能吗
你就可以在程序里重载虚函数LRESULT CALLBACK WindowProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)switch(message){ case WM_MOUSEMOVE:\/\/写你要在鼠标移动时做的处理 break;...} CDialog::WindowProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);} CDialog::WindowProc(HWND h...

如何在c语言中编写用鼠标点击输入
需要mouse.h这个库函数,你百度一下吧,在c的图形化编程中用到 不过用c而不是vc编写这个比较繁琐,呵呵

在C语言编程下怎么控制windows系统指针的移动?
使用用SendInput函数可以控制指针的移动。第二个参数是一个INPUT结构体的数组,第一个参数代表这个数组有几个元素,最后一个参数代表这个数组中每一个元素是几个字节。参考以下代码。include <windows.h>#pragma comment(lib, "user32.lib")int main() {INPUT mouseInput;ZeroMemory(&mouseInput, size...

用C语言怎么判断鼠标在窗口的位置?
include <stdio.h> include <windows.h> int main(void){ POINT pt;GetCursorPos(&pt);printf("%ld %ld\\n",pt.x,pt.y);return 0;} \/\/---

相似回答