Yazılım

C de mouse komutları

NİSAN 10, 2011

Bu yazıda Dev c++ derleyicisinde mouse komutlarından bahsedeceğim.

Öncelikle graphics.h kütüphanesinin içerisindeki komutlara buradan ulaşabilirsiniz.

Yazacağım örnekte kullandığım komutlar ise:

void getmouseclick(int kind, int& x, int& y);

Bu komut mouse'a nerde tıklanmışsa onun koordinatlarını verir

int kind parametresine hangi tıklamanın koordinatlarını almak istiyorsanız onu yazcaksınız. Mesela:

WM_LBUTTONDOWN yazarsanız bu sol tek tıklamadır.

WM_LBUTTONDBLCLK sol çift tıklamadır.

WM_RBUTTONDOWN sağ tek tıklamadır.

WM_RBUTTONDBLCLK sağ çift tıklamadır.

int &x x, int &y ise y koordinatını size geri döndürcektir.

bool ismouseclick(int kind); Bu komutu açıkcası tam çözemedim. Herhangi mouse hareketini yakalamak için sanırım. Bunda da parametre olarak hangi tıklamayı kullancağınızı belirtmeniz gerekmekte.

Aşağıdaki örneğin amacı alandaki herhangi bi yerde sol tuşa tıkladığınızda size x ve y koordinatlarını geri döndürüp ekrana yazdırıyor.

#include  <graphics.h>
int main()
{
int x=0, y=0;
char say1[5], say2[5];
initwindow(800,600);
rectangle(20,20,40,40); // hiç bir amacı yok çok sade kalmasın diye çizdim.
while(!ismouseclick(WM_LBUTTONDOWN))
{
outtextxy(50,50,"tıkla");
}
while(ismouseclick(WM_LBUTTONDOWN))
{
getmouseclick(WM_LBUTTONDOWN,x,y);
sprintf(say1,"x:%d",x);
sprintf(say2,"y:%d",y);
outtextxy(100,50,say1);
outtextxy(150,50,say2);
}
getch();
closegraph();
return 0;
}

Bu komutlar dışında incelemek isterseniz:

void setmousequeuestatus(int kind, bool status=true);

void clearmouseclick(int kind);

farklı örnekler bulunmakta bu komutların açıklamalarında.

Projenin derlenmiş halini indirebilirsiniz:Dev C++’ta mouse örneği

Projeyi açarken rar’dan çıkarttıktan sonra Project1.dev dosyasından açın. Ayrıca şunlara da bakabilirsiniz:

Dev C++’da resim ekleme

Dev C++’a graphics.h ekleme

Dev c++’da şekilleri hareket ettirme

Kolay Gelsin


Dev-C++ Derleyicisine graphics.h Kütüphanesini Ekleme

OCAK 24, 2011

C/C++ da oyun yazmak ya da grafik kütüphanesiyle ilgili birşeyler yapmak istiyorsanız: Öncelikle iki dosyaya ihtiyacınız var bunlardan biri libbgi.a dosyası buradan indiriniz. Diğer graphics.h dosyasını ise buradan indiriniz.

Dev C++'da Resim Ekleme

ŞUBAT 7, 2011

Bir önceki yazımda Dev c++ programına graphics.h kütüphanesini eklemiştik ve Windows BGI penceresini açmıştık. Şimdi bu penceremize nasıl resim ekleyeceğimizi anlatacağım.
Grafik penceremize resim almak için readimagefile(); komutunu kullanacağız.

Onur 19.4.2011
Teşekkur ederim paylaşımınız için en azından kafamda birşeyler canlandı
fakat benım 1 skıntım var.. Grafik ekranını acınca mouse ile tıkladıgım yere İmlecin gitmesini istiyorum ve oraya yazılan yazıların girdi olarak alınmasını istiyorum fakat bir turlu beceremedim bende getch() dan yazıyorum surekli.. Telefon rehberi yapıyoruz arkadaşla ve bunu gorsel yapmak istedik.. eger cozum bulabilirseniz cok sevinirim..
mesela ekranda Ad yazıcak yarsında mause ile tıklayınca imlec oraya gidecek ve oraya isim yazıcaz bu ismide girdi olarak o anda alıcaz getch() den yapılıyor fakat silme işlemi oluyor ve imlec de olmadıgı icin pek hosumuza gitmedi onerilerinizi bekliyorum tşkurler şimdiden
ilknur 19.4.2011
Yazdığın gibi ekranda göstermen grafik ekranında biraz zor geçen sene otomasyon yapan arkadaşlardan biliyorum. Girdi bekliyosan zaten exe’sine yazılıyo arka planda kalan pencereye grafik ekranında çıkmıyor. Ama şunu deneyebilirsin tıklandığında oranın koordinatını alıp daha sonra orda bi l harfi yazdırıp (outtextxy(); komutu var bunla ekranda string ve ya karakterleri gösterebiliyosun) sonra ekranı silip(cleardevice();) tekrar çağırabilirsin belli aralıklarla(delay komutu bekleme komutu) bi sn bekle sil şeklinde yapabilirsin böylece yanıp sönmüş gibi olur. Girdiyi de bir diziye alırsın sonra onu yine outtextxy() komutu ile gösterebilirsin.
ya da getch’le yapmak istiyorsan sürekli bir while döngüsünde giriş alıp aldığın girişi ekranda gösterebilirsin. yani mesela
while(1){
ch=getch();
if(ch==13) printf(“n”);
printf(“%c”,ch);}
onda da enter alt satıra geçmek de problem çıkabilir enter’ın ascii kod karşılığı 13 ondan onu öle ayrı yazdım.
Onur 19.4.2011
cok teşekur ederim onerilerinizi deniyecem ilginiz icin teşekurler
Onur 21.4.2011
oncelikle teşkkur ediyorum onerileriniz işime yaradı gercekten
while(!ismouseclick(WM_LBUTTONDOWN)){}
bu fonksiyonun tam olarak ne işe yaradıgını soyleyebilirmisiniz acaba ben bunu gereksiz zannedip sildim ve farenın calısmadıgını gordum illa fareye 1 tık yapmtırmak icin sureklı
while(ismouseclick(WM_LBUTTONDOWN)){
getmouseclick(WM_LBUTTONDOWN,mousex,mousey);}
bu kalıbımı kullanmak zorundayız daha dogrusu bu bir kalıp mı ?
ilknur 23.4.2011
şöyle sölemeliyim ki while(!ismouseclick(WM_LBUTTONDOWN)){}
bunu kullanmalısın.
Ama tek tık için getmouseclick(WM_LBUTTONDOWN,mousex,mousey); komutunu tek olarak yazabilirsin. while içerisine almadan da çalışıyor denedim.
Yusuf 29.2.2012
WM_MBUTTONDOWN // Orta düğme diyor ama tekerlek düğmesi için komut
ilknur 29.2.2012
Teşekkürler uyarın için :)
Ulas 1.12.2012
Yeni şeyler paylaşmanızı 4 gözle bekliyorum. Teşekkürler..
ilknur 1.12.2012
En yakın zamanda :)
mehmet ısık 4.1.2013
hocam merhaba grafik kütüphanesiyle c dilinde kronometre yapmak istiyorum yardımcuı olursanız sevinirim
ilknur 4.1.2013
Merhaba , grafik kütüphanesinde kronometre yapabilmen için şöyle yaparsın sonsuz döngü içinde 0'dan başlatırsın ekranda sayıları göstersin dur esc tuşuna basınca break komutuyla döngüden çıkarsın. Ekrana sayıları yazdırırken önce bir öncekini arkaplan rengine boyar sonra tekrar sayıyı yazdırırsın sayıyı yazdırmak içinde Ekrana karakter yazdırma makalemi okuyabilirsin.

POPÜLER İÇERİK

C/C++ da oyun yazmak ya da grafik kütüphanesiyle ilgili birşeyler yapmak istiyorsanız: Öncelikle iki dosyaya ihtiyacınız var bunlardan biri libbgi.a dosyası buradan indiriniz. Diğer graphics.h dosyasını ise buradan indiriniz.

OCAK 24, 2011 - 78 YORUM

Dev-C++ Derleyicisine graphics.h Kütüphanesini Ekleme