|
3 / 3 / 0
Регистрация: 04.02.2015
Сообщений: 48
|
||||||
Нажатие кнопок мыши в консоле на С++08.01.2021, 15:41. Показов 9864. Ответов 17
Метки нет (Все метки)
Здравствуйте!!!
Помогите решить проблему. Дан код для консольного приложения:
Проблема в том, что при нажатие левой кнопки мыши, почему-то код останавливается. При нажатие правой кнопки мыши все снова работает. Как реализовать чтоб при нажатие левой кнопки мыши появлялась какое нибудь сообщение в консоле например Hello World, а при нажатие правой кнопки мыши появлялась другое сообщение, например A good day Добавлено через 2 минуты Если стереть keybd_event (VK_LBUTTON,0,0,0); все равно при нажатие левой мыши программа останавливается, а при правой работает. Редакторы Dev C++ и Visual C++
0
|
||||||
| 08.01.2021, 15:41 | |
|
Ответы с готовыми решениями:
17
Откомпилированное приложение не отвечает на нажатие кнопок мыши |
|
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
|
||||||||||
| 08.01.2021, 16:01 | ||||||||||
|
Добавлено через 2 минуты Кстати можно ещё вот так
Мой кусочек кода определяет зажата ли клавиша. Для определения была ли нажата нужно иным путем работать. Щас поищу Добавлено через 1 минуту Добавлено через 4 минуты Если заменить на if (GetKeyState(VK_LBUTTON)) без сравнения то будет работать как переключатель. Печатаются 0 например, нажали клавишу - печатаются 1. Отпустили - печатаются 1. Нажали ещё раз - печатаются 1. Отпустили - печатаются 0. Грубо говоря переключатель Добавлено через 4 минуты
0
|
||||||||||
|
3 / 3 / 0
Регистрация: 04.02.2015
Сообщений: 48
|
||||||
| 08.01.2021, 16:35 [ТС] | ||||||
0
|
||||||
|
3 / 3 / 0
Регистрация: 04.02.2015
Сообщений: 48
|
|
| 08.01.2021, 16:49 [ТС] | |
|
Как быть и что не так
Добавлено через 8 минут Laborant666 :Вы кликаете по консоли и она начинает ждать ввода. нажимаете энтер и программа продолжает работать. Если кликать вне окошка консоли - всё будет работать и ничего не будет останавливаться Мой ответ: мне нужно чтоб при нажатие левой кнопки мыши цикл не останавливался а что то писала ...if (GetKeyState(VK_LBUTTON) & 0x8000) cout << 1 << endl;... Единица не появляется Сейчас заметил что если ЛКМ нажать за консалью появляется единицы а при отжатие нули Если курсор мыши подвести в черное окно консоли и нажать ЛКН то цикл оастанавливается. А если при подведение курсора мыши в консль как то ее отключить для консоли но при этом при нажатие ЛКМ ни чего не останавливалась работала как при нажатие за консолью Добавлено через 5 минут на рисунке222222. png при нажатие правой кнопке мыше (не левой)
0
|
|
|
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
|
|
| 08.01.2021, 16:55 | |
|
Роман72234, зачем вам вообще нажатия по консоли, если обычно программы на отлов нажатий свернуты и не мешают? Погуглите, как заставить игнорировать нажатия мыши консолью. Тут уж не помогу
Добавлено через 59 секунд Что б цитировать мои слова - выделяете мышью текст и появляется кнопка цитировать - текст вставится в поле ввода. Что б ответить мне жмите по моему нику слева от моих сообщений, иначе мне не приходит оповещений
0
|
|
|
5 / 5 / 2
Регистрация: 27.03.2018
Сообщений: 33
|
||||||||||||||||
| 08.01.2021, 16:58 | ||||||||||||||||
|
Я не уверен, пригодится ли вам то, что я сейчас скину, но я как-то хотел упороться написанием своего консольного ГУИ. Слава небесным доспехам, меня быстро отпустило)) Можете глянуть на то, как я было реализовал "button" контрол. Авось и поможет чем (да, код грязный, но "такова селяви"):
GUI.h
0
|
||||||||||||||||
|
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
|
|||
| 08.01.2021, 17:09 | |||
|
Kroval, сильно же вас "прикурило"
![]() Добавлено через 54 секунды Kroval, сомневаюсь что автору такое понадобится. Тут человек не понимает, что консоль с мышью вообще плохо дружит, а точнее совсем не приспособлена под работу с ней, ибо консоль по сути лишь оболочка Добавлено через 1 минуту Kroval, ну и собственно человек не понял, что при нажатии в консоли консоль стоит и ждет что будет ввод и взял повторил эти же мои слова и спросил "почему консоль останавливается?" Добавлено через 3 минуты Добавлено через 1 минуту
1
|
|||
|
5 / 5 / 2
Регистрация: 27.03.2018
Сообщений: 33
|
|
| 08.01.2021, 17:12 | |
|
Laborant666, что есть, то есть: вряд ли пригодится. Но наше дело простое - поделиться
А "прикурило" меня тогда жутко)) Хорошо, что быстро пришло понимание, что я занимаюсь самым бесполезным занятием из всех возможных.
0
|
|
|
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
|
|
| 08.01.2021, 17:16 | |
|
Kroval, особенно когда пришло понимание в приложении кнопка делается за две секунды в отличии от консоли?))
0
|
|
|
5 / 5 / 2
Регистрация: 27.03.2018
Сообщений: 33
|
|
| 08.01.2021, 17:48 | |
|
Laborant666, использовать Visual CPP я не хотел и не особо хочу, так как нормальная защита конечного приложения по сути невозможна из-за специфики Visual CPP. Я отдаю предпочтение графическим библиотекам. ИмГуи, например. Летом начинал пилить свою ГУИ-либу на GLFW и сделал даже пару контролов, но потом столько дел в один момент навалилось, что я до сих пор не могу к ней вернуться.
0
|
|
|
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
|
|
| 08.01.2021, 17:50 | |
|
Kroval, а как приятно будет вспоминать потом то что писали, что б дописать) Уууу
0
|
|
|
5 / 5 / 2
Регистрация: 27.03.2018
Сообщений: 33
|
|
| 08.01.2021, 17:54 | |
|
Laborant666, скорее, буду начинать сначала. Много нового узнал за последние месяцы, так что лучше начать с чистого .cpp-файла
Да и вообще: развиваясь, начинаю смотреть на свой ранешний код как на что-то совсем непотребное. не люблю к нему возвращаться.
0
|
|
|
3 / 3 / 0
Регистрация: 04.02.2015
Сообщений: 48
|
||||||
| 09.01.2021, 07:00 [ТС] | ||||||
|
Во общем, как окончательный результат решение моего вопроса, на основание
переданного кода от Laborant666 написал свой следующей код:
Добавлено через 4 минуты Но все таки главный вопрос: почему нажатие ПКМ и ЛКМ в консоле, ЛКМ -останавливает весь цикл работу кода, а ПКМ все возобнаявляет я так и не решил. Мне не понятно. Мне нужно чтоб при нажитие ПКМ и ЛКМ в консоле, также работали как и при нажатие за консолью. Пока ни как не получается. Может есть какие то настройки в редакторах DEVС++ и Visual C++ Добавлено через 12 минут Я написал кучу программ на с++ на формах, но сейчас решил консоль в С++ поизучать
0
|
||||||
|
5 / 5 / 2
Регистрация: 27.03.2018
Сообщений: 33
|
||||||
| 09.01.2021, 08:16 | ||||||
|
Роман72234, Так тоже останавливает? У меня вроде нет. Хотя у меня и не останавливало
0
|
||||||
|
3 / 3 / 0
Регистрация: 04.02.2015
Сообщений: 48
|
|
| 09.01.2021, 11:10 [ТС] | |
|
У меня этот код от Kroval работает только при нажатии мыши ЛКМ и ПКМ за границами консолью очень хорошо (все как надо).Но если курсор мыши подвести в черный консоль и нажать ПКМ то выходит RMB is pressed, отпускаю ПКМ
выходит LMB and RMB are released (пока все как надо), нажимаю ЛКМ надпись такая же - LMB and RMB are released (не выходит надпись LMB is pressed при нажатие в консоле ЛКМ, а мне надо чтоб выходило). Если выйти курсором мыши за консоль, то все надписи хорошо появляются при нажатии ЛКМ и ПКМ. Так вот нельзя-ли чтоб при нажатии мыши в консоле все хорошо выходило так, как за консолью. В этом проблема у меня. Заметил что при нажатии ЛКМ в консоле код останавливается,при нажатии ПКМ все возобнавляется. Нельзя ли эту команду как то отключить и перевести что при нажатии ЛКМ в консоле (а не за границами консоле)все таки появлялось надпись LMB is pressed, вместо остановки кода. Добавлено через 1 минуту У меня стоит Windows 10 Добавлено через 4 минуты Если у Вас этот код работает при нажатии ПКМ т ЛКМ в консоле (все выходит как надо), а не за ее границами. То видимо какая то другая причина в настройках чего-то. Добавлено через 45 минут Еще заметил что в cmd.exe такая же ситуация ЛКМ оастанавливает а ПКМ возобновляет (то есть такая команда стандартная для всех консольных приложений). Чувствую что я что то возможно не корректный вопрос по консолям задал. Просто я хотел игру в консоли написать. Но будут такие проблемы. Для расчетной программы (рассчитать механику оборудования, станков, двигателей как набор формул введите значение, нажмите кнопку и получите результат) консоль пойдет. Но для игр это слишком наверно. Но мне надоело писать на формах. Хочется и в консоле попробовать. Хотя капсулку в консоле на псевдографике я написал, но там управление с клавиатулы, а мне нужно с мышью. Если сообразили как решить эту проблему в консоле пожалуста напишите.
0
|
|
|
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
|
|||
| 09.01.2021, 14:32 | |||
|
Добавлено через 2 минуты
0
|
|||
|
5 / 5 / 2
Регистрация: 27.03.2018
Сообщений: 33
|
||
| 09.01.2021, 15:08 | ||
|
А по поводу проблем с кодом даже без понятия. У меня и ваш код отлично работает, и мой.
0
|
||
|
3 / 3 / 0
Регистрация: 04.02.2015
Сообщений: 48
|
||||||
| 09.01.2021, 16:00 [ТС] | ||||||
|
Но тем не менее у меня консоль в режиме выделения была. И ниже код теперь работает хоть в консоле так за ее пределами:
Решение этой проблемы нашел на этом форуме. Ну а теперь буду дальше изучать С++. У меня явно будут возникать всякие вопросы, если сам не смогу решить, то буду просить помощи на этом форуме, для решение вопросов. Спасибо!!!
1
|
||||||
| 09.01.2021, 16:00 | |
|
Помогаю со студенческими работами здесь
18
Калькулятор: как обрабатывать нажатие кнопки мыши на одну из "кнопок"? Ограничить передвижение курсора мыши левой нижней четвертью экрана.При нажатие левой клавиши мыши выключить индикатор NumLock(+Звук),при нажатие право Программное нажатие на кнопку в игре не отрабатывает. Имитировать нажатие кнопок геймпада xbox 360 Нажатие клавиш в консоле
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|