Установка и использование MousePosition - PullRequest
0 голосов
/ 04 апреля 2011

Эй, у меня довольно глупая проблема, мне нужно установить Point Pos в качестве текущей позиции мыши в одном операторе if, а в другом - переместить курсор мыши в заданное положение. Сначала мне нужно назначить глобальную переменную Point, но затем курсор переместится в назначенную переменную, и я не хочу, чтобы это произошло. Часть источника:

protected override void WndProc(ref Message m)
        {
            Point Pos = new Point(0, 0);

            if (m.Msg == 0x0312)
            {
                int id = m.WParam.ToInt32();
                if (id == 0)
                {
                    Pos.X = MousePosition.X;
                    Pos.Y = MousePosition.Y;  
                }
                if (id == 1)
                {
                    Cursor.Position = (Pos);
                }
            }
            base.WndProc(ref m);
        }

Ответы [ 2 ]

1 голос
/ 04 апреля 2011

Если вы намереваетесь захватить положение мыши и восстановить ее позже, тогда вы должны сделать переменную Pos полем вашего класса вместо локальной переменной метода.Как это:

    private Point Pos;

    protected override void WndProc(ref Message m)
    {
        if (m.Msg == 0x0312)   // Trap WM_HOTKEY
        {
            switch (m.WParam.ToInt32()) {
               case 0: Pos = Cursor.Position; break;
               case 1: Cursor.Position = Pos; break;
            }
        }
        base.WndProc(ref m);
    }
0 голосов
/ 04 апреля 2011
Point pos = this.PointToClient(Cursor.Position);

Вернет ваше актуальное положение мыши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...