Merih Forum Programlama ve yazılım algoritmalar programlama c# c++ C# Mouse (Cursor) Koordinatlarını Almak

ABD Münbiçi bırakır mı ?

ABD, Münbiçin yarısı sizde yarısı bizde kalsın dedi

SON 20 YILDA OSCAR KAZANAN KADINLAR

Son 20 yılda En İyi Kadın Oyuncu kategorisinde Oscar kazanan oyuncuların listesi...

AFRİN HAREKATI

Zeytin Dalı Harekatında teröristlerden temizlenen bölge artıyor

SILKROAD XIAN SERVER

2017 de açılan Xian server ilginç özelliklerde

  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
C# Mouse (Cursor) Koordinatlarını Almak

 
#1

1495836587.png


Selamlar arkadaşlar,
Bu dersimizde C# Mouse (Cursor) Kordinatlarını nasıl alırız ona bakacağız.
Bunun için Windows'un dll'lerini kullanacağız. Bu sebeple ilk olarak projemize 
C#
Kod:
using System.Runtime.InteropServices;

Namespace' ini ekliyoruz. Daha sonra da,
C#
Kod:
       [StructLayout(LayoutKind.Sequential)]
       public struct POINT
       {
           public int X;
           public int Y;
           public static implicit operator Point(POINT point)
           {
               //return new Point(point.X - 175, point.Y - 100);              
               return new Point(point.X, point.Y);              
               //Normal şartlarda bir üst satırdaki gibi olması gerekiyor.
               //Verdiğim bu ( - ) değerlerin açıklması aşağıdadır.                
           }
       }    
       [DllImport("user32.dll")]
       public static extern bool GetCursorPos(out POINT lpPoint);
       public static Point GetCursorPosition()
       {
           POINT lpPoint;
           GetCursorPos(out lpPoint);          
           return lpPoint;
       }

kodlarını projemize ekliyoruz.
Yorum satırı olarak da yazdım. Zaten kodlarda da görüyorsunuz -175 ve -100 ifadelerini. Bunun sebebi bir nesneyi run-time da hareket ettirmek için burada oluşan değeri alıp nesnenin location özelliğine atıyorum. Ancak nesneyi hareket ettirdiğimizde de tam bu ( - ) değerler kadar cursor'dan uzakta oluyor. Yani nesne tam olarak cursor'un ucunda durmuyor. Bu nedenle bu şekilde cursor'dan gelen koordinatlara müdahele ederek amacımıza ulaşıyoruz.
Edit: Sonradan farkettim ki ( - ) değer vererek düzeltmek sadece bir ekran için normal çalışıyor. Daha doğrusu bir ekran çözünürlüğüne göre. Çünkü yukarıdaki kod, Farenin ekran üzerindeki koordinatlarını alıyor. Bize Form üzerindeki koordinatları lazım oluyor. Form'u maximize yapsak bile tam olarak işe yaramıyor.
Daha basit bir yöntemi yok mu derseniz de
C#
Kod:
MessageBox.Show("X: " + Cursor.Position.X + " Y: " + Cursor.Position.Y);

Bu varicon_lol.gif 
Farenin Form üzerinde bulunduğu koordinatı alma işlemi de
C#
Kod:
Point CursorPoint = this.PointToClient(Cursor.Position);

Şeklindedir. Ve bu istediğim şeyi vermiş oldu... 
Bu son iki kodu daha sonradan buldum ve dersi güncelledim. Çünkü farklı monitöre geçtiğimde ilk kodlar çalışmadı. Smile 
Bu dersimizde bu kadar arkadaşlar.



Ara
Cevapla


[-]
Hızlı Cevap

İnsan Doğrulama:
Aşağıda görünen onay kutusunu işaretleyiniz. Bu işlem otomatik spam kayıtları önlemek için kullanılır.

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Konuyu Okuyanlar:
1 Ziyaretçi

   
Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2018 MyBB Group.  



Merih Forum® bilgi paylaşım platformu. 2015-2018 Tüm hakları saklıdır.