• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Курсор и изображение

  • Автор темы Автор темы Nee
  • Дата начала Дата начала

Nee

Ученик
Регистрация
29 Янв 2012
Сообщения
2
Реакции
0
Баллы
0
Курсор и изображение

Помогите пожалуйста.: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,&reg,&reg,&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,&reg,&reg);
*kbt=reg.x.ax;
return(reg.x.ax);
}
void ms_on(void)
{
union REGS reg;
reg.x.ax=1;
int86(0x33,&reg,&reg);
}
void ms_off(void)
{
union REGS reg;
reg.x.ax=2;
int86(0x33,&reg,&reg);
}
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,&reg,&reg);
}
void ms_setcr(int x,int y)
{
union REGS reg;
reg.x.ax=4;
reg.x.cx=x;
reg.x.dx=y;
int86(0x33,&reg,&reg);
}
int ms_querp(MOUSE_STATE *ms, int bottom)
{
union REGS reg;
reg.x.ax=5;
reg.x.bx=bottom;
int86(0x33, &reg, &reg);
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, &reg, &reg);
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, &reg, &reg);
ms->bottoms=reg.x.bx;
ms->x=reg.x.cx;
ms->y=reg.x.dx;
return(ms);
}
 

Вложения

  • __________534334.webp
    __________534334.webp
    60.9 KB · Просмотры: 122
  • __________564556.webp
    __________564556.webp
    63.3 KB · Просмотры: 137
Это курсор
#include<stdio.h>
#include<dos.h>
#include<conio.h>
#include<stdlib.h>
#include<mouse.h>
void ms_tform(int tip,int ms1, int ms2);
MOUSE_STATE*ms_query(MOUSE_STATE*ms);
void ms_setcr(int x, int y);

union REGS reg;

int ms_init(int*kbt)
{
union REGS reg;
reg.x.ax=0;
int86(0x33,&reg,&reg);
*kbt=reg.x.bx;
return(reg.x.ax);
}

void ms_on (void)
{
union REGS reg;
reg.x.ax=1;
int86(0x33,&reg,&reg);

}
void ms_off (void)
{
union REGS reg;
reg.x.ax=2;
int86(0x33,&reg,&reg);
}
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,&reg,&reg);
}
void ms_setcr(int x, int y)
{
union REGS reg;
reg.x.ax=4;
reg.x.cx=x;
reg.x.dx=y;
int86(0x33,&reg,&reg);
}

MOUSE_STATE*ms_query(MOUSE_STATE*ms)
{
union REGS reg;
reg.x.ax=3;
int86(0x33,&reg,&reg);
ms->bottoms=reg.x.bx;
ms->x=reg.x.cx;
ms->y=reg.x.dx;
return(ms); }

main()
{
int botm, lp,px,py;
MOUSE_STATE state;
textmode(3);
textbackground(0);
textcolor(14);
clrscr();
if(!ms_init(&botm))
{
puts("Mouse is off.");
exit(-1);
}
label5:
ms_on();
ms_tform(0,0x30E0,0xCF1F);
ms_setcr(0,0);
gotoxy(2,9);
cprintf("Blue");
gotoxy(2,10);
cprintf("Green");
gotoxy(2,11);
cprintf("Red");
gotoxy(2,12);
cprintf("White");
gotoxy(2,14);
cprintf("EXIT");

lp=0;
while(!0)
{
ms_query(&state);
px=state.x;
py=state.y;
lp=state.bottoms;
if(lp==1)
{
ms_off();
gotoxy(10,1);
cprintf("x=%-5d y=%-5d",px,py);
if(px>0*8 && px<5*8 && py>56 &&
py<72) goto label1;
if(px>0*8 && px<5*8 && py>64 &&
py<80) goto label2;
if(px>0*8 && px<5*8 && py>72 &&
py<88) goto label3;
if(px>0*8 && px<5*8 && py>80 &&
py<96) goto label4;
if(px>0*8 && px<5*8 && py>96 &&
py<112) goto label6;
ms_on();
lp=0;
}
}

label1:clrscr();
textbackground(1);
gotoxy(36,12);
cprintf(" ");
gotoxy(36,13);
cprintf(" ");
gotoxy(36,14);
cprintf(" ");
gotoxy(36,15);
cprintf(" ");
sound(130.85);

delay(1000);
nosound();
textmode(-1);
ms_off();
clrscr();
goto label5;
label2:clrscr();
textbackground(2);
gotoxy(36,12);
cprintf(" ");
gotoxy(36,13);
cprintf(" ");
gotoxy(36,14);
cprintf(" ");
gotoxy(36,15);
cprintf(" ");
sound(130.85);

delay(1000);
nosound();
textmode(-1);
ms_off();
clrscr();
goto label5;
label3:clrscr();
textbackground(4);
gotoxy(36,12);
cprintf(" ");
gotoxy(36,13);
cprintf(" ");
gotoxy(36,14);
cprintf(" ");
gotoxy(36,15);
cprintf(" ");
sound(130.85);

delay(1000);
nosound();
textmode(-1);
ms_off();
clrscr();
goto label5;
label4:clrscr();
textbackground(7);
gotoxy(36,12);
cprintf(" ");
gotoxy(36,13);
cprintf(" ");
gotoxy(36,14);
cprintf(" ");
gotoxy(36,15);
cprintf(" ");
sound(130.85);

delay(1000);
nosound();
textmode(-1);
ms_off();
clrscr();
goto label5;
label6:clrscr();
gotoxy(36,12);
cprintf("Thank you!!!");
delay(1000);
ms_off();
clrscr();
return(0);

}
 
Назад
Сверху