| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 444 人关注过本帖
标题:求一段代码
只看楼主 加入收藏
猪也聪明
Rank: 1
等 级:新手上路
帖 子:156
专家分:0
注 册:2005-5-16
收藏
 问题点数:0 回复次数:1 
求一段代码
各位大虾,求一段利用中断在C界面下显示鼠标得代码,谢谢哦,麻烦各位了
搜索更多相关主题的帖子: 代码 
2005-09-19 20:25
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

#include <graphics.h> #include <dos.h>

int InitMouse() {_AX=0;__int__(0x33);return(_AX);} void ShowMouse() {_AX=1;__int__(0x33);} void HideMouse() {_AX=2;__int__(0x33);} void SetMousePos(int x,int y) {_AX=4;_CX=x;_DX=y;__int__(0x33);}

typedef struct { int x,y,key; } MOUSESTRUCT;

void glreadmouse(MOUSESTRUCT *m) { _AX=3;__int__(0x33); m->x=_CX; m->y=_DX; m->key=_BX; }

void glfill(int x,int minx,int maxx, int y,int miny,int maxy, int color,int edgecolor) { #define SIZE 10 static int stack[SIZE][2],size=SIZE; int sp=0; #define PUSH(x,y){ if(!full()) stack[sp][0]=x,stack[sp][1]=y,sp++; } #define POP(x,y){ if(!empty()) sp--,x=stack[sp][0],y=stack[sp][1]; } #define empty() (sp<=0) #define full() (sp>=size) int xx,c,cu,cd; PUSH(x,y); while(!empty()) { char sd=1,su=1,eu=1,ed=1; POP(x,y); if(y<miny||y>maxy) continue; if(y==miny) eu=0; else if(y==maxy) ed=0; while(x>=minx) { c=getpixel(x,y); if(c==edgecolor) break; x--; } for(xx=x+1;xx<=maxx;xx++) { c=getpixel(xx,y); if(c==edgecolor) break; else putpixel(xx,y,color); cu=getpixel(xx,y-1); cd=getpixel(xx,y+1); if(cu!=color&&cu!=edgecolor&&eu){ if(su) PUSH(xx,y-1); su=0;} else su=1; if(cd!=color&&cd!=edgecolor&&ed){ if(sd) PUSH(xx,y+1); sd=0;} else sd=1; } } }

int color=9;

void gldraw(MOUSESTRUCT new) { static MOUSESTRUCT old={-1,-1,-1}; if(new.key==1) { if(old.x==-1&&old.y==-1) line(new.x,new.y,new.x,new.y); else line(old.x,old.y,new.x,new.y); old=new; } else if(new.key==2) glfill(new.x,0,639,new.y,0,479,color,color); else old.x=old.y=-1; }

main() { int gdriver=VGA,gmode=VGAHI; if(InitMouse()==0) { printf("\nmouse not install!\n");exit();} initgraph(&gdriver,&gmode,"d:\\tc"); outtextxy(270,370,"glvenlan"); while(1) { static MOUSESTRUCT now; if(kbhit()) { char c=getch(); if(c==0x1b) break; if(c==' ') cleardevice(); else if(c>='1'&&c<='9') color=c&0xf; } setcolor(color); ShowMouse(); delay(1000); HideMouse(); glreadmouse(&now); gldraw(now); } closegraph(); }


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-09-19 21:01
快速回复:求一段代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013712 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved