elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Obtener Coordenadas X e Y Dentro de un Panel o Canvas (C#)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Obtener Coordenadas X e Y Dentro de un Panel o Canvas (C#)  (Leído 12,456 veces)
poyson1

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Obtener Coordenadas X e Y Dentro de un Panel o Canvas (C#)
« en: 20 Mayo 2010, 22:44 pm »

Hola a todos, quisiera por favor que alguien me ayude con una respuesta que necesito, quiero obtener las coodenadas x e y de cualquier punto determinado al cual haga clic desde dentro de un panel o canvas contenido en un form, si me salgo del panel o canvas x e y seran cero (0).

Actualmente lo tengo hecho utilizando la Clase Point de System.Drawing y las coordenadas que he estado capturando  son las de cualquier parte de la pantalla completa del monitor y las que quiero es desde dentro de un panel o canvas de un form.

No se como especificarle a una instancia de Point que su espacio total sera el size del panel o canvas.

Agradecera cualquier ayuda.


En línea

poyson1

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Obtener Coordenadas X e Y Dentro de un Panel o Canvas (C#)
« Respuesta #1 en: 21 Mayo 2010, 15:54 pm »

Bueno parece que el tema no solo se me hace a mi dificil...
Aqui les pegare un codigo que he resuelto a ver si el mismo les da alguna idea y me pueden ayudar.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace PosicionCursor
{
    public partial class frmMain : Form
    {
        
        [DllImport("user32.dll")]
        // GetCursorPos()hace todo posible
        static extern bool GetCursorPos(ref Point lpPoint);
        // Variable que necesitaremos para contar los pixeles viajados
        static protected long totalPixels = 0;
        static protected int currX;
        static protected int currY;
        static protected int diffX;
        static protected int diffY;

        public frmMain()
        {
            InitializeComponent();
        }

        private void tmrDef_Tick(object sender, EventArgs e)
        {          
            //Nuevo punto el cual sera actualizado por la funcion con las coordenadas actuales
            Point defPnt = new Point();          
            //Llama la funcion y pasa el Punto, dfPnt
            GetCursorPos(ref defPnt);            
            // Ahora despues de llamar la funcion, defPnt conteniendo las coordenadas las cuales podemos leer
            lblCoordX.Text = "X = " + defPnt.X.ToString();
            lblCoordY.Text = "Y = " + defPnt.Y.ToString();
            // Si el cursor se mueve para donde sea
            if (diffX != defPnt.X | diffY != defPnt.Y)
            {
                // Calcula la distancia del movimiento (horizontal y verticalmente)
                diffX = (defPnt.X - currX);
                diffY = (defPnt.Y - currY);
                // La diferencia sera negativa si el cursor fue movido a la izquierda o arriba
                // y si eso sucede, hara el numero positivo
                if (diffX < 0)
                {
                    diffX *= -1;
                }
                if (diffY < 0)
                {
                    diffY *= -1;
                }
                // Agregar a los pixeles viajados un contador
                totalPixels += diffX + diffY;
                // y mostrar en el label los pixeles viajadas
                //lblTravel.Text = "Viajaste " + totalPixels + " pixeles";
            }
            // Necesitamos esto para ver la diferencia de pixeles entre dos movimientos de dos mouses
            currX = defPnt.X;
            currY = defPnt.Y;
        }

        private void btnReset_Click(object sender, EventArgs e)
        {
            totalPixels = 0;
        }
    }
}

Si pegan ese codigo el cual esta en un simple form con tres label, un timer y un button, si lo prueban se daran cuenta de que puedo capturar las coordenadas X e Y de cualquier parte de la pantalla donde se mueva el Mouse, y mi Incognita esta en tomar esas mismas coordenadas (X,Y) pero dentro de un Formulario o dentro de un panel o canvas o cualquier otro control, lo que quiero es especificarle a POINT que no sera la screen completa sino solo un control y si se sale de ahi sera 0,0.


« Última modificación: 21 Mayo 2010, 15:55 pm por poyson1 » En línea

43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 503



Ver Perfil
Re: Obtener Coordenadas X e Y Dentro de un Panel o Canvas (C#)
« Respuesta #2 en: 22 Mayo 2010, 03:46 am »

Puedes añadir que en el evento MouseMove de un picturebox por ejemplo inicie el timer y en el resto del formulario (evento MouseMove) que detenga dicho timer y coloque a 0 las coordenadas, asi solo mostrará los cambios de posicion cuando este sobre el picturebox.
Para el timer seria bueno colocar un intervalo de 100 aproximandamente.

Escribiste muchas lineas de code para algo tan simple...
En línea


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Que es canvas? « 1 2 »
Dudas Generales
Yasmesita 10 11,740 Último mensaje 19 Septiembre 2011, 19:14 pm
por imoen
[VBS] ¿Como obtener las coordenadas del ratón?
Scripting
serginmatonis 0 1,493 Último mensaje 8 Febrero 2012, 21:22 pm
por serginmatonis
ajustar canvas dentro de un div dependiendo de la resolucion de pantalla
Desarrollo Web
OssoH 2 4,382 Último mensaje 10 Abril 2012, 16:59 pm
por OssoH
Como obtener posicion mouse dentro de scrollpane?
Java
juancaa 2 2,782 Último mensaje 25 Junio 2012, 11:44 am
por juancaa
[C#] detectar imagen y obtener coordenadas
.NET (C#, VB.NET, ASP)
nevachana 8 8,494 Último mensaje 7 Febrero 2015, 17:39 pm
por nevachana
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines