社区
工具平台和程序库
帖子详情
如何在C编的程序里加入鼠标
eatwind0
2004-08-11 08:08:16
如何在C编的程序里加入鼠标
...全文
537
35
打赏
收藏
如何在C编的程序里加入鼠标
如何在C编的程序里加入鼠标
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
35 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liujingfu123
2004-08-17
打赏
举报
回复
kinghawk(惊鸿)你的代码有没有经过调试的啊?
geninterrupt和_ES=FP_SEG这两个函数在哪里?
coyprightbao
2004-08-16
打赏
举报
回复
收藏之!!!!!!!!!
eatwind0
2004-08-15
打赏
举报
回复
编译通过了,但是读地址的时候出错了。。。
liushuaiboy
2004-08-14
打赏
举报
回复
up
sekelon
2004-08-14
打赏
举报
回复
最简单的就是显示一下鼠标:
#include <stdio.h>
#include <stdlib.h>
main() {
int key;
char flag=1;
reset();
show_mouse();
while(flag){
if(kbhit()){
key=getch();
if(key==27)
flag=0;
}
}
}
cthiro123
2004-08-14
打赏
举报
回复
ding
sekelon
2004-08-14
打赏
举报
回复
asm{
...
}就可以了
12l
2004-08-14
打赏
举报
回复
问:在C里头怎么搞ASM进去?
kinghawk
2004-08-13
打赏
举报
回复
我以前贴过下面的代码,本来不想再贴了,看见大家都在贴,我也凑热闹
#include <bios.h>
/*鼠标信息宏定义*/
#define WAITING 0xff00
#define LEFTPRESS 0xff01
#define LEFTCLICK 0xff10
#define LEFTDRAG 0xff19
#define RIGHTPRESS 0xff02
#define RIGHTCLICK 0xff20
#define RIGHTDRAG 0xff2a
#define MIDDLEPRESS 0xff04
#define MIDDLECLICK 0xff40
#define MIDDLEDRAG 0xff4c
#define MOUSEMOVE 0xff08
int Keystate;
int MouseExist;
int MouseButton;
int MouseX;
int MouseY;
/*鼠标光标形状定义*/
typedef struct
{
unsigned int shape[32];
char hotx;
char hoty;
}SHAPE;
/*手型1*/
SHAPE HAND1={
{
0xe1ff,0xe1ff,0xe1ff,0xe1ff,
0xe000,0xe000,0xe000,0xe000,
0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,
0x1e00,0x1200,0x1200,0x1200,
0x1200,0x13ff,0x1249,0x1249,
0x1249,0x9001,0x9001,0x8001,
0x8001,0x8001,0x8001,0xffff
},
5,0,
};
/*手型2*/
SHAPE HAND2={
{
0xf3ff,0xe1ff,0xe2ff,0xe1ff,
0xe001,0xe000,0xe000,0xe000,
0x8000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x8001,0x0003,
0x0c00,0x1200,0x1200,0x1200,
0x13fe,0x1249,0x1200,0x1249,
0x7249,0x9001,0x9001,0x9001,
0x8001,0x8001,0x4002,0x3ffc
},
4,0,
};
/*箭头型*/
SHAPE ARROW={
{
0x3fff,0x1fff,0x0fff,0x07ff,
0x03ff,0x01ff,0x00ff,0x007f,
0x003f,0x00ff,0x01ff,0x10ff,
0x30ff,0xf87f,0xf87f,0xfc3f,
0x0000,0x7c00,0x6000,0x7000,
0x7800,0x7c00,0x7e00,0x7f00,
0x7f80,0x7e00,0x7c00,0x4600,
0x0600,0x0300,0x0300,0x0180
},
0,0,
};
/*左右箭头型*/
SHAPE LEFTRIGHT={
{
0xffff,0xffff,0xfbdf,0xf3cf,
0xe3c7,0xc003,0x8001,0x0000,
0x8001,0xc003,0xe3c7,0xf3cf,
0xfbdf,0xffff,0xffff,0xffff,
0x0000,0x0000,0x0420,0x0c30,
0x1428,0x27e4,0x4002,0x8001,
0x4002,0x27e4,0x1428,0x0c30,
0x0420,0x0000,0x0000,0x0000
},
8,8,
};
/*上下箭头型*/
SHAPE UPDOWN={
{
0xfeff,0xfcff,0xf83f,0xf01f,
0xe00f,0xc00f,0xf83f,0xf83f,
0xf83f,0xf83f,0xc007,0xe00f,
0xf01f,0xf83f,0xfc7f,0xfeff,
0x0100,0x0280,0x0440,0x0820,
0x1010,0x3c78,0x0440,0x0440,
0x0440,0x0440,0x3c78,0x1010,
0x0820,0x0440,0x0280,0x0100
},
8,8,
};
/*鼠标光标显示*/
void MouseOn()
{
_AX=0x01;
geninterrupt(0x33);
}
/*鼠标光标掩示*/
void MouseOff()
{
_AX=0x02;
geninterrupt(0x33);
}
/*鼠标是否加载
MouseExist:1=加载
0=未加载
MouseButton:鼠标按键数目 */
void MouseLoad()
{
_AX=0x00;
geninterrupt(0x33);
MouseExist=_AX;
MouseButton=_BX;
}
/*鼠标状态值初始化*/
void MouseReset()
{
_AX=0x00;
geninterrupt(0x33);
}
/*改变鼠标光标形状
SHAPE sp:为以上定义的形状 */
void MouseShape(SHAPE sp)
{
_BX=sp.hotx;
_CX=sp.hoty;
_ES=FP_SEG(&sp.shape);
_DX=FP_OFF(&sp.shape);
_AX=0x09;
geninterrupt(0x33);
}
/*设置鼠标左右边界
lx:左边界
gx:右边界 */
void MouseSetX(int lx,int rx)
{
_CX=lx;
_DX=rx;
_AX=0x07;
geninterrupt(0x33);
}
/*设置鼠标上下边界
uy:上边界
dy:下边界 */
void MouseSetY(int uy,int dy)
{
_CX=uy;
_DX=dy;
_AX=0x08;
geninterrupt(0x33);
}
/*设置鼠标当前位置
x:横向坐标
y:纵向坐标 */
void MouseSetXY(int x,int y)
{
_CX=x;
_DX=y;
_AX=0x04;
geninterrupt(0x33);
}
/*设置鼠标速度(缺省值:vx=8,vy=1)
值越大速度越慢 */
void MouseSpeed(int vx,int vy)
{
_CX=vx;
_DX=vy;
_AX=0x0f;
geninterrupt(0x33);
}
/*获取鼠标按下键的信息*/
/*是否按下左键
返回值: 1=按下 0=释放*/
int LeftPress()
{
_AX=0x03;
geninterrupt(0x33);
return(_BX&1);
}
/*是否按下中键
返回值同上 */
int MiddlePress()
{
_AX=0x03;
geninterrupt(0x33);
return(_BX&4);
}
/*是否按下右键
返回值同上 */
int RightPress()
{
_AX=0x03;
geninterrupt(0x33);
return(_BX&2);
}
/*获取鼠标当前位置*/
void MouseGetXY()
{
_AX=0x03;
geninterrupt(0x33);
MouseX=_CX;
MouseY=_DX;
}
zwzzj
2004-08-13
打赏
举报
回复
还是让我把汇编看完了在来看了。
lodestar51
2004-08-13
打赏
举报
回复
好东西 。看看。。。
CsdnPlayer
2004-08-13
打赏
举报
回复
这个太麻烦,我记得网上有mouse.c提供的。
xkou
2004-08-13
打赏
举报
回复
mark
LDD123
2004-08-13
打赏
举报
回复
mark
happychenkj
2004-08-13
打赏
举报
回复
嗯,好东东!sekelon(罗伦罗亚索龙)的回复,good
demo001
2004-08-13
打赏
举报
回复
mark
sekelon
2004-08-13
打赏
举报
回复
C出身的,汇编懂一点点
fatcat2002
2004-08-13
打赏
举报
回复
楼上的 汇编一定很叼吧
sekelon
2004-08-13
打赏
举报
回复
INT 33H 功能00H 初始化鼠标
调用寄存器:AX 0000H
返回寄存器:AX 0 未安装鼠标
-1 安装了鼠标
BX 按钮数
INT 33H 功能01H 显示鼠标光标
调用寄存器:AX 0001H
返回寄存器:无
INT 33H 功能02H 关闭鼠标光标
调用寄存器:AX 0002H
返回寄存器:无
INT 33H 功能03H 取鼠标位置
调用寄存器:AX 0003H
返回寄存器:BX 按钮状态(0-7位分别代表各键状态)
CX X坐标(水平)
DX Y坐标(垂直)
INT 33H 功能04H 置鼠标位置
调用寄存器:AX 0004H
CX 新X坐标(水平)
DX 新Y坐标(垂直)
返回寄存器:无
INT 33H 功能05H 取按钮按下信息
调用寄存器:AX 0005H
BX 按钮(0左边,1右边,2中间)
返回寄存器:AX 按钮状态
BX 按钮按下次数(在每次调用时复位0)
CX 最后按下时光标的水平位置
DX 最后按下时光标的垂直位置
INT 33H 功能06H 取按钮释放信息
调用寄存器:AX 0006H
BX 按钮(同功能07H)
返回寄存器:AX 按钮状态
BX 上次调用以来释放的次数
CX 最后释放时光标的水平位置
DX 最后释放时光标的垂直位置
INT 33H 功能07H 置鼠标X界限
调用寄存器:AX 0007H
CX 最小X值
DX 最大X值
返回寄存器:无
INT 33H 功能08H 置鼠标Y界限
调用寄存器:AX 0007H
CX 最小Y值
DX 最大Y值
返回寄存器:无
INT 33H 功能09H 置图形鼠标形状
调用寄存器:AX 0009H
BX 热点X位置(-16到16)
CX 热点Y位置(-16到16)
ES:DX 指向视屏掩码和光标掩码的指针(掩码可以定义为字符数组,见程序中例子)
返回寄存器:无
INT 33H 功能0AH 设置文本光标类型
调用寄存器:AX 000AH
BX 0 选择属性光标
1 选择硬件光标
CX 如BX=0,为视屏掩码(AND值)
BX=1,为开始扫描行
DX 如BX=0,为光标掩码(XOR值)
BX=1,为结束扫描行
返回寄存器:无
sekelon
2004-08-13
打赏
举报
回复
其实原理很简单,DOS0x33软中断就是一个鼠标管理的中断程序,在C只要用int86函数对中断进行调用就可以了,如果有返回值得话就存在那个共用体中返回。不过在执行程序之前要确定已经安装了鼠标驱动,否则程序无法正常工作的。
加载更多回复(15)
C#,数值计算,解微分方程的龙格-库塔二阶方法与源代码
C#,数值计算,解微分方程的龙格-库塔二阶方法与源代码 微分方程 含有导数或微分的方程称为微分方程,未知函数为一元函数的微分方程称为常微分方程。 微分方程的阶数 微分方程中导数或微分的最高阶数称为微分方程的阶数。 微分方程的解 使得微分方程成立的函数称为微分方程的解。 微分方程的特解 微分方程的不含任意常数的解称为微分方程的特解。 微分方程的通解 所含相互独立的任意常数的个数与微分方程的阶数相等的微分方程的解称为微分方程的通解。
桌面聊天室
该毕业设计采用了c/s架构,通过javase中的知识
编
写完成,系统功能包括:用户注册,用户登录,聊天功能。 对于刚学完java基础的同学来说可以通过该毕业设计加深对所学知识的理解。该系统使用socket进行数据的发送,用户注册登录之后,可以进行多人聊天,功能类似qq群聊。
【前端素材】大数据-交通大屏.zip
大数据技术指的是用于处理和分析大规模数据集的技术和工具。以下是一些常见的大数据技术和工具: Hadoop:Apache Hadoop是一个用于分布式存储和处理大规模数据的开源框架。它包括Hadoop Distributed File System(HDFS)用于数据存储和MapReduce用于数据处理。 Spark:Apache Spark是一个快速、通用的集群计算系统,提供了比MapReduce更快的数据处理能力。它支持内存计算和更多复杂的数据处理流程。 NoSQL数据库:NoSQL数据库(如MongoDB、Cassandra等)则更适用于处理这类数据。 数据仓库:数据仓库是一个用于集成和分析大规模数据的存储系统,一些知名的数据仓库包括Snowflake、Amazon Redshift等。 数据湖:数据湖是一个存储结构化和非结构化数据的存储池,用于支持数据分析和机器学习应用。 机器学习:大数据技术也广泛应用于机器学习领域,支持大规模数据的模型训练和预测分析。 流式处理:针对实时数据处理需求,流式处理技术(如Apache Kafka、Apache Flink)可以实时。
inspect:windows系统下的控件识别工具
windows系统下的控件识别工具,可用于桌面应用的UI自动化测试
038ssm-jsp-mysql高校毕业生就业满意度调查统计系统.zip(可运行源码+数据库文件+文档)
高校毕业生就业满意度调查统计系统是以实际运用为开发背景,运用软件工程开发方法,采用jsp技术构建的一个管理系统。整个开发过程首先对软件系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统总体结构设计、系统数据结构设计、系统功能设计和系统安全设计等;详细设计主要包括模块实现的关键代码,系统数据库访问和主要功能模块的具体实现等。最后对系统进行功能测试,并对测试结果进行分析总结,及时改进系统中存在的不足,为以后的系统维护提供了方便,也为今后开发类似系统提供了借鉴和帮助。 本高校毕业生就业满意度调查统计系统采用的数据库是Mysql,使用JSP技术开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 关键词:高校毕业生就业满意度调查统计系统,JSP技术,Mysql数据库
工具平台和程序库
24,854
社区成员
27,343
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章