Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

Как правильно брать координаты курсора по событию WM_LBUTTONDOWN в x64? - C++

19.11.2014, 11:54. Просмотров 519. Ответов 14
Метки нет (Все метки)

Как правильно брать координаты курсора по событию WM_LBUTTONDOWN в x64? В x32 было
C++
1
2
x=LOWORD(Lparam);
y=HIWORD(Lparam);
. А в x64 как? По идее HIWORD в 64-хбитном типе - это в котором единица весит 281474976710656. Или нужно старшее слово младшего двойного слова?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2014, 11:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как правильно брать координаты курсора по событию WM_LBUTTONDOWN в x64? (C++):

Как узнать координаты курсора мыши и отобразить их? c++ - C++
Как узнать координаты курсора мыши и отобразить их? c++

Как получить координаты курсора при нажатии любой кнопки мыши? - C++
Неужели не кто не знает?

Как правильно высчитать координаты - C++
использую функцию glulookat задача камера должна вращается вокруг точки posx,posy,0 ,высота heigh так же есть два угла поворота rx и ry ...

Координаты курсора - C++
Помогите как правильно сделать, чтобы при наведении курсора на картинку в лейблах отображались координаты х и у. Написал: void...

Координаты курсора в консоли - C++
Существует аналог функции паскалевской GoToXY(x,y) - перемещает курсор по заданным координатам. Получается у меня задание такое, что надо...

Координаты курсора мыши - C++
Ребят подскажите библиотеку которая умеет: манипулировать устройствами ввода + возвращать нажатые клавиши и координаты курсора! и примерчик...

14
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
19.11.2014, 14:12 #2
По-моему HIWORD просто возвращает биты с 17-го по 32-й. Так что запись изменится не должна.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.11.2014, 14:14  [ТС] #3
То есть пересекает границу слов? Не смешно.
0
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
19.11.2014, 14:18 #4
Слово - 16 бит. Какую еще на хрен границу? Я сюда не пошутить зашел.
0
0x10
2479 / 1654 / 248
Регистрация: 24.11.2012
Сообщений: 4,097
19.11.2014, 14:53 #5
Достаточно почитать документацию:
http://msdn.microsoft.com/ru-ru/libr...(v=vs.85).aspx
On 64-bit Windows, lParam is 64-bit value. The upper 32 bits of lParam are not used. The MSDN documentation mentions the
"low-order word" and "high-order word" of lParam. In the 64-bit case, this means the low- and high-order words of the lower 32 bits. The macros extract the right values, so if you use them, you will be safe.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.11.2014, 15:00  [ТС] #6
Цитата Сообщение от castaway Посмотреть сообщение
Слово - 16 бит. Какую еще на хрен границу? Я сюда не пошутить зашел.
Младшее с 0-го по 15-й, первое с 16-го по 31-й, второе с 32-го по 47-й, третье с 48-го по 63-й. С 16-го по 32-й - это биты двух разных слов.
0
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
19.11.2014, 15:11 #7
Я говорю о том, о чем написал 0x10.
Есть первый бит, нулевого бита не бывает. Это не массив в C++, а натуральный счет.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.11.2014, 17:01  [ТС] #8
Цитата Сообщение от castaway Посмотреть сообщение
Я говорю о том, о чем написал 0x10.
Есть первый бит, нулевого бита не бывает. Это не массив в C++, а натуральный счет.
Бывает. Цифры нумеруются по показетелям степеней основания, равных их весам и никакого отношения к счёту чего либо не имеют. Вес младшей цифры всегда 1, http://www.cyberforum.ru/cgi-bin/latex.cgi?2^1=2, http://www.cyberforum.ru/cgi-bin/latex.cgi?2^0=1. И массивы здесь тоже не при чём, младший бит всегда нулевой, даже на бейсике, где массивы индексируются с единицы.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.11.2014, 17:04  [ТС] #9
Под битами подписаны номера некоторых их них: Как правильно брать координаты курсора по событию WM_LBUTTONDOWN в x64?.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.11.2014, 17:06  [ТС] #10
А если по счёту, так тогда первый - это старший.
0
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
19.11.2014, 18:02 #11
В общем, это палка о двух концах. Если считать биты подряд, то первый бит будет первым.
В калькуляторе ОС Windows специально предусмотрен вид "Программист", который нумерует цифры по степени двойки. Это плохой пример.
Мне вот что интересно: ты не понял что я имел в виду, или понял и просто решил придраться к трактовке натуральных чисел?

Добавлено через 1 минуту
Цитата Сообщение от taras atavin Посмотреть сообщение
А если по счёту, так тогда первый - это старший.
Это с какой стати?
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.11.2014, 18:24  [ТС] #12
Цитата Сообщение от castaway Посмотреть сообщение
В калькуляторе ОС Windows специально предусмотрен вид "Программист", который нумерует цифры по степени двойки. Это плохой пример.
Это как раз хороший пример. Поищи позиции разрядов в литературе. Или здесь: https://ru.wikipedia.org/wiki/%D0%A7...81%D1%82%D0%B8.

Добавлено через 3 минуты
Вот ещё: https://ru.wikipedia.org/wiki/%D0%A7...81%D1%82%D0%B8.

Добавлено через 21 секунду
Ещё: https://ru.wikipedia.org/wiki/%D0%A7...81%D1%82%D0%B8.

Добавлено через 1 минуту
Биты - это цифры, цифры нумеруются по показателям степеней основания. Биты двоичны поэтому по показателям степеней двойки.
0
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
19.11.2014, 18:57 #13
Цитата Сообщение от castaway Посмотреть сообщение
Мне вот что интересно: ты не понял что я имел в виду, или понял и просто решил придраться к трактовке натуральных чисел?
Ответь.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.11.2014, 10:56  [ТС] #14
Причём здесь вообще натуральные числа?
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
20.11.2014, 15:10 #15
C++
POINT cp;
GetCursorPos( &cp );
0
20.11.2014, 15:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2014, 15:10
Привет! Вот еще темы с ответами:

Как правильно задать координаты курсора - C#
Доброго времени суток.Нужно реализовать клик мышкой по координатам.Сделал так: textBox2.Text = x1; textBox3.Text = y1; ...

Как настроить тему курсора мыши в Ubuntu 12.04 UE 3.4 x64 - Ubuntu Linux
Всем доброго времени суток. Открываю firefox курсор изменяется отдельные элементы с одной темы, есть элементы и сдругой. Какими командами...

Как определить координаты курсора - C# WPF
Как в WPF определять координаты мыши ? В Windows Forms делала так: private void Form_1_MouseMove(object sender, MouseEventArgs...

Как получить координаты курсора? - C++/CLI WinForms
Добрый день. При Клике мышкой на кнопку, не могу получить координаты указателя, а при клике на пустое поле формы, координаты задаются...


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

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

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