1. int  getx(void){message();return x;} //获得鼠标x值
  2. int  gety(void){message();return y;} //获得鼠标y值
  3. int  getlbx(void){mousekeymessage();return lbx;} //获得鼠标左键按下的x值
  4. int  getlby(void){mousekeymessage();return lby;} //获得鼠标左键按下的y值
  5. int  getlex(void){mousekeymessage();return lex;} //获得鼠标左键松开的x值
  6. int  getley(void){mousekeymessage();return ley;} //获得鼠标左键松开的y值
  7. int  getrbx(void){mousekeymessage();return rbx;} //获得鼠标右键按下的x值
  8. int  getrby(void){mousekeymessage();return rby;} //获得鼠标右键按下的y值
  9. int  getrex(void){mousekeymessage();return rex;} //获得鼠标右键松开的x值
  10. int  getrey(void){mousekeymessage();return rey;} //获得鼠标右键松开的y值
  11. //获得鼠标左键按下的次数
  12. int  getleftnum(void){mousekeymessage();return leftnum;}
  13. //获得鼠标右键按下的次数
  14. int  getrightnum(void){mousekeymessage();return rightnum;}
  15. int  getkey(void){message();return key;} //获得鼠标key值
  16. //显示鼠标座标
  17. void showxy(void){gotoxy(1,1);cout<<"x="<<x<<" y="<<y<<" key="<<key<<endl;}
  18. int yesno(int,int,int,int);//判断鼠标是否在指定范围
  19. void run(void far interrupt(far *p)(),int nn);// 用户鼠标程序的运行
  20. void close(void);  //消除用户鼠标程序的运行
  21. };
  22. //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  23. void MOUSE::show_message(void)
  24. {
  25. cout<<"Mouse num:"<<num<<endl;
  26. cout<<"Mouse form:"<<form<<endl;
  27. cout<<"Mouse showsection:"<<bx<<","<<by<<","<<ex<<","<<ey<<endl;
  28. }
  29. void MOUSE::init(void)
  30. {
  31. union REGS r;
  32. flag=0;
  33. if(getvect(0x33)!=0L)
  34. {  r.x.ax=0;
  35. int86(0x33,&r,&r);
  36. if(r.x.ax==0){cout<<"NOT INSTALLED MOUSE !";exit(0);}
  37. if(r.x.ax!=0){
  38. flag=1;num=r.x.bx;
  39. shape();
  40. if(!chart)
  41. {
  42. r.h.ah=0x0f;
  43. int86(0x10,&r,&r);
  44. if(r.h.al==0||r.h.al==1)winxsize=16;
  45. chart=1;
  46. }}
  47. }
  48. }
  49. void MOUSE::shape()
  50. {
  51. if(flag)
  52. { _ES=FP_SEG(form->image);
  53. _DX=FP_OFF(form->image);
  54. _CX=form->y;
  55. _BX=form->x;
  56. _AX=0x09;
  57. geninterrupt(0x33);
  58. rx=form->x;
  59. ry=form->y;
  60. }
  61. }
  62. void MOUSE::setshape(int n)
  63. {
  64. switch (n)
  65. {
  66. case 0:form=&Mouse0;break;
  67. case 1:form=&Mouse1;break;
  68. case 2:form=&Mouse2;break;
  69. case 3:form=&Mouse3;break;
  70. case 4:form=&Mouse4;break;
  71. case 5:form=&Mouse5;break;
  72. case 6:form=&Mouse6;break;
  73. case 7:form=&Mouse7;break;
  74. case 8:form=&Mouse8;break;
  75. default:break;
  76. }
  77. shape();
  78. }
  79. inline void MOUSE::show(void)
  80. {
  81. union REGS r;
  82. if(flag)
  83. {
  84. r.x.ax=1;
  85. int86(0x33,&r,&r);
  86. FLAG=1;
  87. }
  88. }
  89. inline void MOUSE::hide(void)
  90. {
  91. union REGS r;
  92. if((FLAG)&&(flag))
  93. {
  94. r.x.ax=2;
  95. int86(0x33,&r,&r);
  96. FLAG=0;
  97. }
  98. }
  99. void MOUSE::setbeginxy(int X,int Y)
  100. {
  101. union REGS r;
  102. if(flag)
  103. {
  104. r.x.ax=4;
  105. r.x.cx=X;
  106. r.x.dx=Y;
  107. int86(0x33,&r,&r);
  108. x=X;y=Y;
  109. }
  110. }
  111. inline void MOUSE::message(void)
  112. {
  113. union REGS r;
  114. if(flag)
  115. {
  116. r.x.ax=3;
  117. int86(0x33,&r,&r);
  118. key=r.x.bx;
  119. KEYKEY=key;
  120. x=r.x.cx;
  121. y=r.x.dx;
  122. }}
  123. void MOUSE::mousekeymessage(void)
  124. {
  125. union REGS r;
  126. if(flag)
  127. {//-----按下-----
  128. //左键
  129. r.x.ax=5;
  130. r.x.bx=0;
  131. int86(0x33,&r,&r);
  132. key=KEYKEY=r.x.ax;
  133. leftnum=r.x.bx;
  134. lbx=r.x.cx;
  135. lby=r.x.dx;
  136. //右键
  137. r.x.ax=5;
  138. r.x.bx=1;
  139. int86(0x33,&r,&r);
  140. key=KEYKEY=r.x.ax;
  141. rightnum=r.x.bx;
  142. rbx=r.x.cx;
  143. rby=r.x.dx;
  144. //-----松开-----
  145. //左键
  146. r.x.ax=6;
  147. r.x.bx=0;
  148. int86(0x33,&r,&r);
  149. key=KEYKEY=r.x.ax;
  150. lex=r.x.cx;
  151. ley=r.x.dx;
  152. //右键
  153. r.x.ax=6;
  154. r.x.bx=1;
  155. int86(0x33,&r,&r);
  156. key=KEYKEY=r.x.ax;
  157. rex=r.x.cx;
  158. rey=r.x.dx;
  159. }}
  160. void MOUSE::show_mousekeymessage(void)
  161. {
  162. gotoxy(10,6);
  163. cout<<"Left ("<<lbx<<","<<lby<<")-("<<lex<<","<<ley<<")\n";
  164. gotoxy(10,7);
  165. cout<<"Right ("<<rbx<<","<<rby<<")-("<<rex<<","<<rey<<")\n";
  166. }
  167. void MOUSE::setmax(int x1,int x2)
  168. {
  169. union REGS r;
  170. if(flag)
  171. {
  172. if(!FLAG)
  173. {
  174. x1=(x1*winxsize)-winxsize;
  175. x2=(x2*winxsize)-winxsize;
  176. }
  177. r.x.ax=7;
  178. r.x.cx=x1;
  179. r.x.dx=x2;
  180. int86(0x33,&r,&r);
  181. }
  182. }
  183. void MOUSE::setmay(int y1,int y2)
  184. {
  185. union REGS r;
  186. if(flag)
  187. {
  188. if(!FLAG)
  189. {
  190. y1=(y1*winysize)-winysize;
  191. y2=(y2*winysize)-winysize;
  192. }
  193. r.x.ax=8;
  194. r.x.cx=y1;
  195. r.x.dx=y2;
  196. int86(0x33,&r,&r);
  197. }
  198. }
  199. void MOUSE::setmaxy(int x1,int y1,int x2,int y2)
  200. {
  201. union REGS r;
  202. if(flag)
  203. {
  204. r.x.ax=16;
  205. r.x.cx=x1;
  206. r.x.dx=y1;
  207. r.x.si=x2;
  208. r.x.di=y2;
  209. int86(0x33,&r,&r);
  210. }
  211. else hide();
  212. }
  213. inline int MOUSE::mousekey()
  214. {
  215. if(kbhit())return KEY();
  216. message();
  217. if(key==1)  return(1001);
  218. if(key==2)  return(1002);
  219. if(key==3)  return(1003);
  220. return(-1);
  221. }
  222. void MOUSE::mousev()
  223. {
  224. if(flag)
  225. {
  226. _BX=20;
  227. _CX=20;
  228. _AX=0x1a;
  229. geninterrupt(0x33);
  230. }}
  231. int MOUSE::yesno(int bx,int by,int ex,int ey)
  232. { int t;
  233. if(bx>ex){t=bx;bx=ex;ex=t;}
  234. if(by>ey){t=by;by=ey;ey=t;}
  235. message();
  236. if(x>bx&&x<ex&&y>by&&y<ey)return 1;
  237. else return 0;
  238. }
  239. void  MOUSE::run(void far interrupt(*p)(),int nn)
  240. {
  241. if(flag)
  242. {
  243. _ES=FP_SEG(p);
  244. _DX=FP_OFF(p);
  245. _CX=nn;
  246. _AX=0x14;
  247. geninterrupt(0x33);
  248. }
  249. }
  250. void MOUSE::close(void)
  251. {
  252. if(flag)
  253. {
  254. _ES=0;
  255. _DX=0;
  256. _CX=0;
  257. _AX=0x14;
  258. geninterrupt(0x33);
  259. }
  260. }
  261. //------------------------------------------------------------------------//

好了,先放这些吧。现在想想如果用DOS做简单的图形界面的嵌入式系统,也许这个也有点用(我刚到公司,做的第一个程序就是用这个改进的(DOS下的物料计量系统))

99年毕业设计获优的程序-图书管理程序 续相关推荐

  1. 99年毕业设计获优的程序-图书管理程序

    这是99年做毕业设计时,用BC3.2做的图书管理程序(当年毕业设计获优,还不错),DOS平台,通过DOS33号中断可以支持鼠标操作,图形界面(仿Window95),不过对菜单部分由于当时技术有限,仅能 ...

  2. 数据结构c语言编程程序,图书管理程序(数据结构c语言实现增删改查)

    本人用C语言编写的第一个完整小程序实现图书的借阅管理,不完美之处欢迎交流! PS:我很菜.QQ:997459445 #include #include #include #include #inclu ...

  3. 基于微信小程序图书借阅管理系统(微信小程序毕业设计)

    基于微信小程序图书借阅管理系统 图书借阅管理系统用户端是基于微信小程序,管理员端是基于java编程语言,mysql数据库,ssm框架,idea工具开发,本系统是分为用户和管理员两个角色,其中用户的主要 ...

  4. [附源码]计算机毕业设计Python+uniapp基于微信小程序图书借阅系统04688(程序+lw+远程部署)

    [附源码]计算机毕业设计Python+uniapp基于微信小程序图书借阅系统04688(程序+lw+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Py ...

  5. java计算机毕业设计面相高校学生的图书共享平台源码+系统+数据库+lw文档+mybatis+运行部署

    java计算机毕业设计面相高校学生的图书共享平台源码+系统+数据库+lw文档+mybatis+运行部署 java计算机毕业设计面相高校学生的图书共享平台源码+系统+数据库+lw文档+mybatis+运 ...

  6. java计算机毕业设计面相高校学生的图书共享平台源代码+数据库+系统+lw文档

    java计算机毕业设计面相高校学生的图书共享平台源代码+数据库+系统+lw文档 java计算机毕业设计面相高校学生的图书共享平台源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开 ...

  7. java计算机毕业设计海城同泽中学图书仓库管理系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计海城同泽中学图书仓库管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计海城同泽中学图书仓库管理系统源码+mysql数据库+系统+lw文档+部署 本源码技 ...

  8. JAVA毕业设计海城同泽中学图书仓库管理系统计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计海城同泽中学图书仓库管理系统计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计海城同泽中学图书仓库管理系统计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目 ...

  9. java计算机毕业设计Vue和mysql智能图书管理系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计Vue和mysql智能图书管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计Vue和mysql智能图书管理系统源码+mysql数据库+系统+lw文档+部 ...

最新文章

  1. 拯救 Out Of Memory,8个案例带你飞!
  2. obs多推流地址_抖音obs推流直播怎么操作,抖音直播推流地址如何获取?
  3. ERROR 1130 (HY000): Host ‘192.168.3.238‘ is not allowed to connect to this MySQL server
  4. JAVA转为wasm
  5. ios 推送通知服务证书不受信任(Apple Push Service certificate is not trusted)
  6. 为什么需要Code Review?
  7. bugku-writeup-Crypto-Ook.
  8. 一位大佬对学习哲理的思考
  9. 区块链安全:实现公链双花攻击的多种方法
  10. “网上下单”生活神技能,寄快递在线下单、查快递实时物流信息
  11. 2021年中国海洋大学计算机及电子信息考研成绩分析
  12. 洛谷 P2350 [HAOI2012]外星人(素因子分解,欧拉函数)
  13. 编译原理习题——第2章 文法和语言试卷
  14. Linux 命令 wc / awk
  15. uni 讯飞文字转语音 详解
  16. 手把手教你用 jQuery 制作无缝轮播
  17. 华为路由器:一次华为AR1220F-s的系统修复经历
  18. 如何无线接收服务器封包,大大通|如何抓取802.11a/b/g/n/ac 的无线网络封包
  19. 在嵌入式设备上(树莓派)动态显示带有中文字体的图片(采用matplotlib绘图)
  20. 基于labview的示波器自动控制软件

热门文章

  1. python虚函数_Python进阶话题杂谈(十三)纯虚函数与抽象基类
  2. java unsafe 详解_Java CAS操作与Unsafe类详解
  3. 2018北语c语言程序2答案,北语21春《JAVA语言程序设计》作业2题目【标准答案】...
  4. Hadoop Hbase 模型结构
  5. Pandas Period
  6. hadoop 自定义数据类型
  7. C语言连接PostgreSQL数据库
  8. java 虚拟内存 堆_jvm虚拟内存分布 与 GC算法
  9. VMware vSphere第三方免费工具介绍之一:RVTools
  10. Mysql学习总结(16)——Mysql之数据库设计规范