| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 425 人关注过本帖
标题:求助!图形问题!
只看楼主 加入收藏
梦想中国
Rank: 2
等 级:新手上路
威 望:5
帖 子:539
专家分:0
注 册:2006-2-26
收藏
 问题点数:0 回复次数:3 
求助!图形问题!

各位好:请帮我看看为什么我的程序在鼠标单击方块的时候不能将方块删除呢?
#include<graphics.h>
#include<dos.h>
#include<conio.h>
union REGS i,o; //DOS中定义的结构
int button,x,y;
struct FF{
int left,top,right,bottom;
};
struct FF graph={200,200,400,400}; //总图坐标
struct FF dot[11][11]; //方块数量
void show_mouse(void); //显示鼠标函数
void draw_graph(struct FF *g); //绘制图形大框函数
void draw_dot(struct FF dot[11][11]); //绘制方块函数
void process_program(void); //主要处理函数
int status_mouse(void);
void mouse_on(struct FF dot[11][11]);
int main(void)
{
int gdriver=DETECT,gmode;
clrscr();
initgraph(&gdriver,&gmode,"c:\\tc");
show_mouse();
draw_graph(&graph);
draw_dot(dot); file://绘制方块(点)
process_program();
getch();
closegraph();
return 0;
}
void show_mouse(void)
{
i.x.ax=1;
int86(0x33,&i,&o);
}
void draw_graph(struct FF *g) //此函数不会错
{
int i;
setcolor(3);
rectangle(g->left,g->top,g->right,g->bottom);
for(i=1;i<=10;i++)
{
line(g->left,g->top+i*20-20,g->right,g->top+i*20-20);
line(g->left+i*20-20,g->top,g->left+i*20-20,g->bottom);
}
}
void draw_dot(struct FF dot[11][11])
{
int k,m,n;
for(k=1;k<=10;k++) // set every line first element
{
dot[k][1].left=202;
dot[k][1].top=202+k*20-20;
dot[k][1].right=218;
dot[k][1].bottom=218+k*20-20;
}
for(m=1;m<=10;m++) //设置除第一元素外的其他元素
{
for(n=2;n<=10;n++)
{
dot[m][n].left=dot[m][n-1].left+20;
dot[m][n].top=dot[m][n-1].top;
dot[m][n].right=dot[m][n-1].right+20;
dot[m][n].bottom=dot[m][n-1].bottom;
}
}
setfillstyle(1,2);
for(m=1;m<=10;m++)
{
for(n=1;n<=10;n++)
{
bar(dot[m][n].left,dot[m][n].top,dot[m][n].right,dot[m][n].bottom);
}
}
}
void process_program(void)
{
char ch;
while(1)
{
if(kbhit())
{
ch=getch();
if(ch==9) //if input tab key,exit program
break;
}
if(status_mouse())
mouse_on(dot);
}
}
int status_mouse(void) //鼠标状态函数,不会错
{
i.x.ax=3;
int86(0x33,&i,&o);
button=o.x.bx;
x=o.x.cx;
y=o.x.dx;
return button;
}
void mouse_on(struct FF dot[11][11])
{
int v1,v2;
for(v1=1;v1<=10;v1++)
for(v2=1;v2<=10;v2++)
{
if(x>=dot[v1][v2].left && x<=dot[v1][v2].right && y>=dot[v1][v2].top && y<=dot[v1][v2].bottom)
{

setfillstyle(1,0);
bar(dot[v1][v2].left,dot[v1][v2].top,dot[v1][v2].right,dot[v1][v2].bottom);
break;
}
}
}


[此贴子已经被作者于2006-3-4 21:41:07编辑过]

搜索更多相关主题的帖子: 图形 
2006-03-04 20:59
高阁逆风
Rank: 5Rank: 5
等 级:职业侠客
威 望:8
帖 子:508
专家分:321
注 册:2006-4-29
收藏
得分:0 
好像只是在左键击下(不放开)的情况下才可以实现删除

      上天安排我做了个多情的人,却又安排我遭遇了无数绝情的人,所以我最终把自己磨练成了一个滥情的人。别人是人见人爱,我是见人爱人.......
2006-05-11 22:19
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

最近上不了网,上网的地方只能在网吧了,帮不了你了,SORRY


淘宝杜琨
2006-05-11 22:26
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

我试拉,能删除方块啊
你想做什么程序啊是打地鼠那种东西吗

2006-05-11 22:49
快速回复:求助!图形问题!
数据加载中...
 
   



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

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