Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 02.07.2014
Сообщений: 7
1

Передвижение курсора мыши с некоторыми условиями

02.07.2014, 21:20. Показов 1602. Ответов 4
Метки нет (Все метки)

Здравствуйте товарищи программисты!
У меня возник небольшой вопрос(возможно он будет не правильно сформулирован, извините заранее)

У меня есть вот такой код[C++]:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include "winbase.h"
#include "conio.h"
#include "iostream"   
#include <windows.h>
 
int main()
{
           POINT cc;
            while(true)
        if(GetAsyncKeyState(VK_LBUTTON))
         {
                GetCursorPos(&cc);
                SetCursorPos(cc.x, cc.y+1);
                Sleep(25);
         }  
}
Быстро объясню что он делает. Он при зажатии VK_LBUTTON(левой кнопки мыши) понемногу опускает курсор по Y на 1 пиксель с задержкой 25 м/c.
Вот мой вопрос:
Как мне реализовать такую штуку как: если была нажата одна из кнопок таких как 0x32 или 0x33 или 0x33(а именно("2", "3", "4")), отключить это самое опускание мыши. А когда была нажата клавиша 0x31(а именно "1") то опускание вновь включается. И так пока программу не закроют.
Я понимаю что использовать слип не хорошо, я понимаю что когда просишь кого-то помочь - просишь сделать за тебя, но я действительно не знаю что делать
Я думаю что это для многих не будет трудной задачей. Надеюсь на Ваше понимание. Спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.07.2014, 21:20
Ответы с готовыми решениями:

Ограничить передвижение курсора мыши левой нижней четвертью экрана.При нажатие левой клавиши мыши выключить индикатор NumLock(+Звук),при нажатие право
Не могу решить подскожите кто знает.(Ограничить передвижение курсора мыши левой нижней четвертью...

Unity3D Не могу найти пример как сделать передвижение по щелчку мыши передвижение персона
Пытаюсь понять как сделать передвижение по щелчку, примерно как в игре &quot;mekorama&quot; правда там...

В рабочей части окна при движении мыши с нажатой левой клавишей мыши рисовать траекторию движения курсора мыши
В рабочей части окна при движении мыши с нажатой левой клавишей мыши рисовать траекторию движения...

Как изменить цвет курсора ввода и курсора мыши в элементе Edit
Всем Здравия. Проблема в следующем, задал цвет фона и цвет текста в Edit, тут все нормально, но...

4
Модератор
Эксперт С++
10512 / 8743 / 5283
Регистрация: 18.12.2011
Сообщений: 23,382
02.07.2014, 21:48 2
Лучший ответ Сообщение было отмечено arkasha102 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static bool EnableMove=false;
POINT cc;
        while(true)
        {
            char c=0;
            if(_kbhit())
            {
               c=_getch();
               if(c=='1')
                    EnableMove=false;
               else
                   EnableMove=true;
            }
            if(GetAsyncKeyState(VK_LBUTTON) && EnableMove)
            {
                GetCursorPos(&cc);
                SetCursorPos(cc.x, cc.y+1);
                Sleep(25);
            }  
            
         }
1
0 / 0 / 0
Регистрация: 02.07.2014
Сообщений: 7
02.07.2014, 23:15  [ТС] 3
Спасибо Вам огромное! Работает отлично. Только я сменил местами true и false.
C++
1
2
3
EnableMove=false;
 else
EnableMove=true;
Ещё раз спасибо.

Добавлено через 7 минут
У меня настиг ещё один вопрос)
Если окно программы активно, то всё работает как нужно(напомню если нажата была 1, то мышь опускалась, а если 2 3 и 4 то нет), но если переключится на другое окно, например браузер, то все эти действия не будут работать(видимо в программу не посылаются нажатия кнопок 1 2 3 4). Вопрос: как сделать так, чтобы при сворачивании окна программы, всё работало в другом окне(нажатия кнопок 2 3 4 выключали движение мыши). Подскажите пожалуйста
0
Модератор
Эксперт по электронике
8380 / 6225 / 836
Регистрация: 14.02.2011
Сообщений: 21,606
02.07.2014, 23:36 4
Цитата Сообщение от arkasha102 Посмотреть сообщение
Вопрос: как сделать так, чтобы при сворачивании окна программы, всё работало в другом окне(нажатия кнопок 2 3 4 выключали движение мыши).
если работаешь в виндос смотри что такое хуки
это перехват системных сообщений и какая то своя реализация
например вот тут http://www.rsdn.ru/article/baseserv/winhooks.xml
или тут
http://msdn.microsoft.com/en-u... s.85).aspx
http://habrahabr.ru/company/infopulse/blog/140456/
но это дело не пяти минут
0
0 / 0 / 0
Регистрация: 02.07.2014
Сообщений: 7
02.07.2014, 23:37  [ТС] 5
Спасибо, почитаю)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2014, 23:37

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Передвижение курсора
Необходимо осуществить передвижение курсора с возможностью приостановки и возобновления.Как сделать...

Передвижение курсора в c++
Здравствуйте, Я начал писать небольшую программу которая должна выполнять заданный алгоритм...

Передвижение курсора по экрану
всем привет в университете для получения зачета дали задание на разработку программы на...

Chart как показывать координаты мыши по графику возле курсора мыши!
Chart как показывать координаты мыши по графику возле курсора мыши! Когда двигаешь мышкой по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.