Курсор и изображение
Помогите пожалуйста.:tehnari_ru_837:
Это изображение.
Помогите пожалуйста.:tehnari_ru_837:
Это изображение.
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <stdlib.h>
#include <mouse.h>
void ms_gform(int xt, int yt);
int ms_querp(MOUSE_STATE *ms,int bottom);
union REGS reg;
int graphdriver,gmode,errorcode;
int form[32]={0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,
0x0000,0x0000,0x0000,0x0000,0xFC3F,0xFC3F,0xFC3F,0 xFC3F,
0xFC3F,0xFC3F,0x0000,0x0180,0x0180,0x0180,0x0180,0 x0180,
0x0180,0x7FFE,0x7FFE,0x0180,0x0180,0x0180,0x0180,0 x0180,
0x0180,0x0000};
void ms_gform(int xt,int yt)
{
union REGS reg;
struct SREGS sreg;
reg.x.ax=9;
reg.x.bx=xt;
reg.x.cx=yt;
reg.x.dx=FP_OFF(form);
sreg.es=FP_SEG(form);
int86x(0x33,®,®,&sreg);
}
main (void)
{
int botm,px,py;MOUSE_STATE state;
char s[60];
graphdriver=DETECT;
initgraph(&graphdriver,&gmode,"C:\\BORLANDC\\BGI") ;
errorcode=graphresult();
if(errorcode!=0)
{
printf("OSHIBKA!\n");
getch();
exit(1);
}
if(!ms_init(&botm))
{
puts("MISH HE YSTAHOVLEHA!");
exit(-1);
}
setfillstyle(1,4);
bar(10,10,600,480);
setcolor(15);
outtextxy(300,470,"BbIXOD");
setcolor(0);
setfillstyle(1,15);
bar(200,150,400,300);
ms_on();
ms_gform(7,7);
while(!0)
{
if(ms_querp(&state,0)!=0)
{
px=state.x; py=state.y;
sprintf(s,"x=%-5d y=%-5d",px,py);
bar(10,10,200,22);
outtextxy(30,12,s);
if(px>300 && px<340 && py>470)goto end;
}
}
end:
cleardevice();
closegraph();
return(0);
}
int ms_init(int *kbt)
{
union REGS reg;
reg.x.ax=0;
int86(0x33,®,®);
*kbt=reg.x.ax;
return(reg.x.ax);
}
void ms_on(void)
{
union REGS reg;
reg.x.ax=1;
int86(0x33,®,®);
}
void ms_off(void)
{
union REGS reg;
reg.x.ax=2;
int86(0x33,®,®);
}
void ms_tform(int type, int msk1, int msk2)
{
union REGS reg;
reg.x.ax=0xA;
reg.x.bx=type;
reg.x.cx=msk1;
reg.x.dx=msk2;
int86(0x33,®,®);
}
void ms_setcr(int x,int y)
{
union REGS reg;
reg.x.ax=4;
reg.x.cx=x;
reg.x.dx=y;
int86(0x33,®,®);
}
int ms_querp(MOUSE_STATE *ms, int bottom)
{
union REGS reg;
reg.x.ax=5;
reg.x.bx=bottom;
int86(0x33, ®, ®);
ms->bottoms=reg.x.ax;
ms->x=reg.x.cx;
ms->y=reg.x.dx;
return(reg.x.bx);
}
MOUSE_STATE *ms_queryq(MOUSE_STATE *ms)
{
union REGS reg;
reg.x.ax=6;
int86(0x33, ®, ®);
ms->bottoms=reg.x.bx;
ms->x=reg.x.cx;
ms->y=reg.x.dx;
return(ms);
}
MOUSE_STATE *ms_query(MOUSE_STATE *ms)
{
union REGS reg;
reg.x.ax=3;
int86(0x33, ®, ®);
ms->bottoms=reg.x.bx;
ms->x=reg.x.cx;
ms->y=reg.x.dx;
return(ms);
}