Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
 Аватар для Rustam
17 / 29 / 3
Регистрация: 05.09.2009
Сообщений: 512

Мышь нажата внутри прямоугольника

05.08.2012, 12:07. Показов 3544. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, на экране рисуется прямоугольник, (функция Draw_Rectangle() как можно определить, что мышь нажата именно во внутри этого прямоугольника? большое спасибо! WinAPI с++

Добавлено через 4 минуты
только без использования функции ClipCursor();
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.08.2012, 12:07
Ответы с готовыми решениями:

Определить, где находится текущая точка: внутри прямоугольника, снаружи, на границе прямоугольника
Представьте, что у вас на форме есть прямоугольник, границы которого на 10 пикселей отстоят от границ рабочей области формы. Необходимо...

Вычисление 2 точек на границе прямоугольника, зная точку внутри прямоугольника и Тангенс угла наклона
Помогите понять общий алгоритм....( Вычисление 2 точек на границе прямоугольника, зная точку внутри прямоугольника и Тангенс угла...

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

11
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
05.08.2012, 12:28
Отследи координаты мыши и определи входит ли они в твой треугольник.
0
 Аватар для Rustam
17 / 29 / 3
Регистрация: 05.09.2009
Сообщений: 512
05.08.2012, 16:17  [ТС]
Игорь с++, не могли бы вы привести пример?
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
05.08.2012, 18:12
Цитата Сообщение от Rustam Посмотреть сообщение
Игорь с++, не могли бы вы привести пример?
т.е. написать за вас программу ?
Говори в чём проблемма? В отслеживании координат мыши или какие координаты находятся в этом треугольнике ?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
05.08.2012, 21:52
Rustam, по ссылке код и готовый проект
Вывод информации при нажатии клавиши на клавиатуре
Собственно вот проверка того что мышь попала в область
C
1
2
3
4
5
6
7
8
9
10
11
12
case WM_LBUTTONDOWN:
        GetWindowRect(hWnd,&pRECT);
        point.x = LOWORD(lParam); 
        point.y = HIWORD(lParam); 
        //Это значит что клацнули на область закрыть
        if
        (
            220 < point.x && 
            150 < point.y
        )
            ShowWindow(hWnd,SW_HIDE);//Прячем окошко (нам кажется что его закрыли)
        break;
Конечно вот эти координаты 220 < point.x и 150 < point.y зависят уже от того в каком месте окна расположен ваш прямоугольник
1
 Аватар для Rustam
17 / 29 / 3
Регистрация: 05.09.2009
Сообщений: 512
05.08.2012, 22:42  [ТС]
Игорь с++, отслеживаю координаты с помощью функций POINT и GetCursorPos(), проблема наверно, какие координаты находятся в этом прямоугольнике, помогите пожалуйста разобраться?
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
06.08.2012, 00:45
Rustam, вам уже -=ЮрА=- раскрыл все карты , возьми те за основу и делайте.
1
4192 / 1839 / 222
Регистрация: 06.10.2010
Сообщений: 4,127
06.08.2012, 12:31
Для проверки на попадание в прямоугольник цункция PtInRect

-=ЮрА=-
Ты прям йода
Миниатюры
Мышь нажата внутри прямоугольника  
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
06.08.2012, 12:41
murderer, о функции PtInRect я не знал(не буду кривить душой), но думаю сути это не поменяло
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
point.x = LOWORD(lParam);
* * * * point.y = HIWORD(lParam);
* * * * //Это значит что клацнули на область закрыть
* * * * if
* * * * (
* * * * * * 220 < point.x &&
* * * * * * 150 < point.y
* * * * )
- как по мне это ничем не уступает PtInRect...

Добавлено через 2 минуты

Не по теме:

PS:И я не настолько страшен как рисунок:)

0
4192 / 1839 / 222
Регистрация: 06.10.2010
Сообщений: 4,127
06.08.2012, 13:19
Я имел ввиду твой стиль писать константы слева от переменной при сравнении.

Кстати вот интересный способ проверки на вхождение в диапазон:

Допустим есть выражение
Pascal
1
if (x>left)and(x<right) then
Это можно переписать так
Pascal
1
if word(x-left)<right then
То есть приводим разность к беззнаковоому типу и сравниваем.
0
06.08.2012, 13:48

Не по теме:

murderer, а если point.x имеет значение 180 а мы из него вычтем 220 то условие тоже отработает а что -40 != 0, прикинь:)
http://codepad.org/bhafhfcI
PS: давай не флудить у меня есть свои дела...

0
4192 / 1839 / 222
Регистрация: 06.10.2010
Сообщений: 4,127
06.08.2012, 14:19
word(-40)=0FFD8h=65496

разность приводится к беззнаковому типу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.08.2012, 14:19
Помогаю со студенческими работами здесь

API который узнает когда нажата мышь, даже если нажато не на форме
Помню что был API на vb.net, который узнает когда нажата мышь, даже если нажато не на форме. Можете подсказать?

Окружность внутри прямоугольника
Привет. Нужно чтобы окружность двигалась внутри прямоугольника от края до края. Вот мой код: private void...

Находится ли точка внутри прямоугольника?
Помогите пожалуйста решить задачу. Необходимо проверить находится ли точка А(х, у) внутри прямоугольника заданного четырьмя координатами,...

Нахождение точки внутри прямоугольника
Дано: Прямоугольник, заданный 4 точками. Точка заданная координатами. Нужно написать функцию, возращающую Труе\Фалсе на нахождение точки...

Создание изображения внутри прямоугольника
Вот собственно вопрос, как с помощью кода именно в С# создать прямоугольник и в него загрузить изображение? Или отдельно вставить...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru