Rabu, 29 Juni 2016

Contoh Mouse.cpp (Coding)

#define MOUSE_INT 0x33 /* Interupsi mouse */
#define MOUSE_READY 0xff /* Mouse siap digunakan */
#define MOUSE_NOT_READY 0x00 /* Mouse tidak siap */

#define MOUSE_SUCCESS 0x1f /* Bisa dinonaktifkan */
#define MOUSE_FAILURE 0xff /* Tak bisa dinonaktifkan */
#define MOUSE_LEFT_CLICK 0x01 /* Klik tombol kiri */
#define MOUSE_RIGHT_CLICK 0x02 /* Klik tombol kanan */
#define MOUSE_LEFT_BUTTON 0x00 /* Pilih tombol kiri */
#define MOUSE_RIGHT_BUTTON 0x01 /* Pilih tombol kanan */
#define UCHAR unsigned char
#define USHORT unsigned short int
class Mouse
{
private:
UCHAR button; /* Banyaknya tombol mouse */
UCHAR isReady; /* Status mouse siap/tidak */
UCHAR clickMode; /* Klik kiri atau klik kanan */
USHORT x, y; /* Posisi koordinat mouse */
/* Mengetahui posisi koordinat pointer mouse */
void getMousePos(void);
public:
Mouse(void); /* Konstruktor default */
~Mouse(void); /* Destruktor default */
UCHAR getState(void); /* Mouse siap/tidak siap */
UCHAR getNumButton(void); /* Cek jumlah tombol mouse */
UCHAR disableMouse(void); /* Nonaktifkan driver mouse */
void enableMouse(void); /* Aktifkan driver mouse */
/* Mendeteksi penekanan tombol mouse */
USHORT getButtonClick(UCHAR btn, USHORT maxclick);
/* Mendeteksi pelepasan tombol mouse */
USHORT getButtonRelease(UCHAR btn, USHORT maxrel);
/* Mengetahui klik kiri atau klik kanan setelah */
/* fungsi getMousePos dijalankan */
UCHAR getClickMode(void);
USHORT getX(void); /* Posisi horizontal mouse */
USHORT getY(void); /* Posisi vertikal mouse */
void hideMouse(void); /* Menyembunyikan pointer */
void showMouse(void); /* Menampilkan pointer */
/* Memindahkan pointer mouse di posisi tertentu */
void setMousePos(USHORT row, USHORT col);
/* Membatasi posisi koordinat mouse di layar */
void setMouseRegion(USHORT y1, USHORT x1,
USHORT y2, USHORT x2);
};
Mouse::Mouse(void)
{

UCHAR state, button;
asm mov ah, 0x00; /* Register AH = 0 */
asm mov al, 0x00; /* Register AL = 0, AH:AL = 0:0 */
asm int MOUSE_INT; /* Deteksi mouse dan drivernya */
asm mov state, al; /* Salin nilai AL ke state */
asm mov button, bl; /* Salin nilai BL ke button */
this->isReady = state;
this->button = button;
return;
}
Mouse::~Mouse(void)
{
return;
}
UCHAR Mouse::getState(void)
{
return this->isReady;
}
UCHAR Mouse::getNumButton(void)
{
return this->button;
}
UCHAR Mouse::disableMouse(void)
{
UCHAR state;
asm mov ah, 0x00; /* Register AH = 0 */
asm mov al, 0x1f; /* Register AL = 0x1f */
asm int MOUSE_INT; /* Nonaktifkan driver mouse */
asm mov state, al; /* Salin register AL ke state */
return state;
}
void Mouse::enableMouse(void)
{
asm mov ax, 0x0020; /* AH = 0, AL = 0x20 */
asm int MOUSE_INT; /* Aktifkan driver mouse */
return;
}
USHORT Mouse::getButtonClick(UCHAR btn, USHORT maxclick)
{
USHORT click, nclick, x, y;
click = nclick = x = y = 0;
while (nclick < maxclick)
{

asm mov ah, 0x00; /* Register AH = 0 */
asm mov al, 0x05; /* Register AL = 5, AX = 5 */
asm mov bh, 0x00; /* Register BH = 0 */
asm mov bl, btn; /* BL = tombol yang dipilih */
asm int MOUSE_INT; /* Deteksi status klik tombol */
asm mov click, bx; /* Banyaknya penekanan tombol */
asm mov x, cx; /* Posisi horizontal mouse */
asm mov y, dx; /* Posisi vertikal mouse */
nclick += click;
}
this->y = y; this->x = x;
return click;
}
USHORT Mouse::getButtonRelease(UCHAR btn, USHORT maxrel)
{
USHORT rel, nrel, x, y;
rel = nrel = x = y = 0;
while (nrel < maxrel)
{
asm mov ah, 0x00; /* Register AH = 0 */
asm mov al, 0x06; /* Register AL = 6, AX = 6 */
asm mov bh, 0x00; /* Register BH = 0 */
asm mov bl, btn; /* BL = tombol yang dipilih */
asm int MOUSE_INT; /* Deteksi pelepasan tombol */
asm mov rel, bx; /* Banyaknya pelepasan tombol */
asm mov x, cx; /* Posisi horizontal mouse */
asm mov y, dx; /* Posisi vertikal mouse */
nrel += rel;
}
this->y = y; this->x = x;
return rel;
}
void Mouse::getMousePos(void)
{
USHORT x, y;
UCHAR cmode;
asm mov ax, 0x0003; /* AH = 0, AL = 3, AX = 3 */
asm int MOUSE_INT; /* Deteksi posisi mouse */
asm mov x, cx; /* Posisi horizontal mouse */
asm mov y, dx; /* Posisi vertikal mouse */
asm mov cmode, bl; /* Tombol yang diklik */
this->y = y; this->x = x;
this->clickMode = cmode;

return;
}
UCHAR Mouse::getClickMode(void)
{
this->getMousePos();
return this->clickMode;
}
USHORT Mouse::getX(void)
{
return this->x;
}
USHORT Mouse::getY(void)
{
return this->y;
}
void Mouse::hideMouse(void)
{
asm mov ax, 0x0002; /* AH = 0, AL = 2, AX = 2 */
asm int MOUSE_INT; /* Sembunyikan pointer mouse */
return;
}
void Mouse::setMousePos(USHORT row, USHORT col)
{
asm mov ax, 0x0004; /* AH = 0, AL = 4, AX = 4 */
asm mov cx, col; /* Posisi horizontal mouse */
asm mov dx, row; /* Posisi vertikal mouse */
asm int MOUSE_INT; /* Pindahkan pointer mouse */
return;
}
void Mouse::setMouseRegion(USHORT y1, USHORT x1,
USHORT y2, USHORT x2)
{
asm mov ax, 0x0007; /* Register AX = 7 */
asm mov cx, x1; /* CX = batas horizontal minimal */
asm mov dx, x2; /* DX = batas horizontal maksimal */
asm int MOUSE_INT; /* Batasi posisi horizontal mouse */
asm mov ax, 0x0008; /* Register AX = 8 */
asm mov cx, y1; /* CX = batas vertikal minimal */
asm mov dx, y2; /* DX = batas vertikal maksimal */
asm int MOUSE_INT; /* Batasi posisi vertikal mouse */
return;
}
void Mouse::showMouse(void)
{
asm mov ax, 0x0001; /* AH = 0, AL = 1, AX = 1 */

asm int MOUSE_INT; /* Tampilkan pointer mouse */
return;
}



Penjelasannya : 


Setelah membuat pustaka class untuk operasi mouse, berikut ini akan diberikan contoh cara menggunakan pustaka class mouse.cpp. Objek yang harus diinstansiasikan dari pustaka class mouse.cpp adalah objek Mouse. Program berikut ini adalah program untuk mendeteksi pilihan yang ditampilkan dilayar. Pada layar monitor akan ditampilkan pilihan A, B, dan C. Jika pengguna mengklik A atau B maka muncul pesan bahwa pengguna telah memilih A atau B. Tetapi jika pengguna mengklik C maka program akan dihentikan

0 komentar:

Posting Komentar

Posting Lebih Baru Posting Lama Beranda

Diberdayakan oleh Blogger.

Facebook

Popular Posts

Formulir Kontak

Nama

Email *

Pesan *

Subscribe Here

Ad Home

Random Posts

Recent Posts

Recent

Header Ads

Popular Posts

Flickr

Newsletter

Subscribe Our Newsletter

Enter your email address below to subscribe to our newsletter.

Ad Banner

About Us

Random Posts

Popular Posts

 

Followers

 

Social Share Icons

Templates by Nano Yulianto | CSS3 by David Walsh | Powered by {N}Code & Blogger