Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 29.01.2012, 11:01   #1 (permalink)
Nee
Новичок
 
Регистрация: 29.01.2012
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Курсор и изображение

Помогите пожалуйста.
Это изображение.
Цитата:
#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.jpg   __________564556.jpg  
Nee вне форума   Ответить с цитированием

Старый 29.01.2012, 11:01
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

По содержанию данные темы очень схожи с вашей

Курсор дёргается
Пропадает изображение.
Тормозит курсор мышки

Старый 29.01.2012, 11:01   #2 (permalink)
Nee
Новичок
 
Регистрация: 29.01.2012
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Это курсор
#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);

}
Nee вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 09:32.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.