subject_22998.htm
来自「一些关于vc的问答」· HTM 代码 · 共 54 行
HTM
54 行
<p>
序号:22998 发表者:东海藏龙 发表日期:2002-11-30 09:46:41
<br>主题:怎么让tc的exe文件响应键盘或鼠标事件?
<br>内容:意思就是tc的exe运行后,会出现图象,比如说一个棋盘或者一辆车子等,我想用鼠标移动棋子或者用up键控制车子向上跑,应该怎么做?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:塞翁 回复日期:2002-11-30 14:56:54
<br>内容:鼠标响应可以用dos的int33中断来实现;键盘响应可以用bioskey函数;你的功能都很好实现.我以前都做过,需要的话找出来给你.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:太平冰水 回复日期:2002-11-30 21:58:39
<br>内容:看看王示元编的“C语言图形界面编程”
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:东海藏龙 回复日期:2002-12-01 18:46:14
<br>内容:好啊,塞翁,你找出来,我看看,谢谢了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:塞翁 回复日期:2002-12-02 01:04:38
<br>内容:关于鼠标的例子<BR>//////////////////////////////////////<BR>int mouse(int x)<BR> {<BR> union REGS in,out;<BR> in.x.ax=x;<BR> int86(0x33,&in,&out); /*int33h是DOS关于鼠标的中断,具体参数可以查手册*/<BR> return(out.x.bx);<BR> }<BR><BR>int mouse_pos()<BR> {<BR> union REGS in,out;<BR> in.x.ax=3;<BR> int86(0x33,&in,&out); /*返回鼠标的坐标*/<BR>/* gotoxy(5,1);<BR> printf("%3d , %3d",out.x.cx,out.x.dx);*/<BR> if(out.x.cx>=263&&out.x.cx<=267&&out.x.dx==80)/*根据鼠标的坐标画不同颜色的圆*/<BR> {<BR> setcolor(4);<BR> circle(265,80,1);<BR> return(1);<BR> }<BR> else<BR> {<BR> setcolor(15);<BR> circle(265,80,1);<BR> return(0);<BR> }<BR> }<BR><BR> main()<BR> {<BR> initialize();<BR> mouse(1);<BR> for(;;)<BR> {<BR> if(mouse_pos())<BR> {<BR> if(mouse(3))<BR> break;<BR> }<BR> }<BR> restorecrtmode();<BR> }<BR><BR> void initialize()<BR> {<BR> int drive=DETECT,mode=0;<BR> initgraph(&drive,&mode,"d:\\tc");<BR> clearviewport();<BR> fp_hzk=open("d:\\pdos\\chs24.fon",O_RDONLY|O_BINARY);<BR> if(fp_hzk==-1)<BR> {<BR> outtextxy(3,3," Error in open CCLIB ! ");<BR> exit(1);<BR> }<BR> }<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:塞翁 回复日期:2002-12-02 01:16:42
<br>内容:关于键盘;(刚才忘了,鼠标例子中关于打开字库文件fp_hzk的一段你要注释掉)<BR>Fn和箭头等键的编码有扩充码,用getch取不到的,参考下面例子:))<BR>===============================================<BR> int key1=0,key2;<BR> while(key1!=13) /*如果不是回车*/<BR> {<BR> if(key1==27)return(0); /*如果是ESC*/<BR> while(bioskey(1)==0); /*等待按任意键*/<BR> key1=key2=bioskey(0); /*返回键的编码*/<BR> key1=key1&0xff; /*取低8位的普通编码*/<BR> key2=key2&0xff?0:key2>>8; /*取高8位的扩充编码*/<BR> if(key2==72||key2==80) /*是上或下箭头*/<BR> { /*一段上下键移动菜单的程序*/<BR> putimage(x,y,buf1,COPY_PUT);<BR> if(key2==72)y=y==b+18?b+ii*18:y-18;<BR> if(key2==80)y=y==b+ii*18?b+18:y+18;<BR> getimage(x,y,x+kk+81,y+18,buf1);<BR> putimage(x,y,buf1,NOT_PUT);<BR> }<BR> }
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:东海藏龙 回复日期:2002-12-02 09:00:51
<br>内容:哎呀,忘了问了,REGS和int86()和bioskey()是什么呀,在哪里能查到?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:塞翁 回复日期:2002-12-02 10:57:22
<br>内容:REGS是一种数据类型;<BR>int86是TC调用dos中断的函数;<BR>bioskey是TC调用bios键盘处理的函数;<BR>都是TC的标准用法;你看帮助文件应该都有(F1?很久没用TC了:)))
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:litian 回复日期:2002-12-18 15:47:08
<br>内容:使用int86之类的函数,还要注意不要忘了包含的头文件。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?