Újra indul a Dr. Bit.
Mielőtt belevágnánk, néhány dolog a C és a C++ kapcsolatáról:
A C++ a C egyfajta kiegészítése, továbbfejlesztése. Több olyan dolgot
könnyedén megvalósíthatunk vele, ami C-ben
elég nehéznek tűnhet. Ez nem azt jelenti, hogy a C rosszabb, mint a
C++, hiszen a C a C++ nyelv "őse",
a C++ alapjai a C-n nyugszanak.
A C gyökerei egészen a 60-as évekre nyúlnak vissza, amikor Martin
Richards megalkotta a BCPL-t, majd ezt
továbbfejlesztve Ken Thompsonnak köszönhetően megszületett a B, amiből
Dennis Ritchie megalkotta a C-t, ami
mostanra annyira befutott, hogy ebben írják az UNIX-ot és a Linuxot,
az újabb MS-DOS-okat, C-ben készült a DOOM,
és még sok más program.
A C++ szerintem nagyon alkalmas arra, hogy valaki elkezdjen
programozni. Ez nem azt jelenti, hogy a C++ egy,
a kezdők számára létrehozott nyelv (mint pl. a BASIC), viszont az
elsajátítása nem különösen nehéz.
A következőkben körülbelül havonta fogok cikkeket írni a C-ről,
illetve a C++-ról. Igyekszem majd hasznos, érdekes
programozási témákat, feladatokat leírni, elmagyarázni. Feltételezem,
hogy már ismered valamelyest a C-t, vagy C++-t.
Az első téma az egérkezelésről szól, két részben, a másik fele a
következő cikkben fog megjelenni. Remélem,
tudok majd segíteni a C++ nyelv jobb megértésében, használatának
könnyebbé tételében, és jó programok készítésében.
A Szerző
Az első téma:
Az egér használata C++-ban
avagy hogyan fogjuk munkára a
"cincogót" DOS alatt?
Ez a módszer ugyanúgy használható C-ben, illetve C++ -ban
Legelőször is illeszd be a forráskódba következőt, az #include
utasítások után:
#define EGER(k,l,m,n);
inregs.x.ax=k;
inregs.x.bx=l;
inregs.x.cx=m;
inregs.x.dx=n;
int86(0x33,&inregs,&outregs);
AX=outregs.x.ax;
BX=outregs.x.bx;
CX=outregs.x.cx;
DX=outregs.x.dx;
Most már csak azokba a függvényekbe kell bemásolnod a következőket,
amelyekkel vezéreltetni akarod az egeret:
union REGS inregs, outregs;
int AX,BX,CX,DX;
Így most van egy egérkezelő programrészed. Ezzel most már könnyedén
vezérelheted az egeret.
Használatára példa:
Egér iniciálása: EGER(0,0,0,0); (Ha sikertelen AX=0 -val tér
vissza)
Egérkurzor láthatóvá tétele: EGER(1,0,0,0);
Egérkurzor láthatatlanná tétale: EGER(2,0,0,0);
(A többi funkcióról majd következő alkalommal!)
Írj egy programot, ami iniciálja és láthatóvá teszi az egerkurzort(ha
nem iniciálható, kilép)
majd egy billentyű lenyomásáig várakozik:
A megoldása:
/* *** EGER1.C - Egy egyszeru egerkezelo peldaprogram. *** */
#include<stdio.h> /* printf() */
#include<dos.h> /* int86() */
#include<conio.h> /* getch() */
/* *** Az altalunk irt egervezerlo. *** */
#define EGER(k,l,m,n);
inregs.x.ax=k;
inregs.x.bx=l;
inregs.x.cx=m;
inregs.x.dx=n;
int86(0x33,&inregs,&outregs);
AX=outregs.x.ax;
BX=outregs.x.bx;
CX=outregs.x.cx;
DX=outregs.x.dx;
/* *** MAIN *** */
void main(void)
{
union REGS inregs, outregs; /* Az eger hasznalatahoz KELL!!! */
int AX,BX,CX,DX; /* Az eger hasznalatahoz KELL!!! */
EGER(0,0,0,0);
if(!AX)
{
printf("nHiba: Nem talaltam egerdrivert!nAz eger nem
inicialhato!n");
/* *** Nem talaltunk egeret. Kilepes *** */
return;
}
EGER(1,0,0,0); /* Legyen lathato az egerkurzor. */
printf("Egerhasznalat demo. A kilepeshez nyomj le egy
billentyut!");
getch(); /* Varakozas egy billentyure. */
EGER(2,0,0,0); /* Ne legyen lathato az egerkurzor.
*/
return; /* Kilepes */
}
/* *** Peldaprogram vege. ***/
Hát mostanra ennyi. A többit a következő alkalommal! (kb. 1 hónap
múlva)
Akkorra ígérem, hogy meglesz a funkciókód-táblázat!
2000. április 06., csütörtök 00:00