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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación General / Re: Obtener Coordenadas X e Y Dentro de un Panel o Canvas (C#) 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.
2  Programación / Programación General / 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.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines