сообщения от мыши(для WinApi)
1. как получить сообщение о использовании скролинга на мыши?
2. сообщения о нажатии кнопок на мыши?
3. как получить координаты мыши?
несколько вопросов о сообщениях от мыши при работе с winapi кодом.
1. как получить сообщение о использовании скролинга на мыши?
2. сообщения о нажатии кнопок на мыши?
3. как получить координаты мыши?
вот некоторые сообщения, которые приходят от мыши
WM_LBUTTONDBLCLK The left mouse button was double-clicked.
WM_LBUTTONDOWN The left mouse button was pressed.
WM_LBUTTONUP The left mouse button was released.
WM_MBUTTONDBLCLK The middle mouse button was double-clicked.
WM_MBUTTONDOWN The middle mouse button was pressed.
WM_MBUTTONUP The middle mouse button was released.
WM_RBUTTONDBLCLK The right mouse button was double-clicked.
WM_RBUTTONDOWN The right mouse button was pressed.
WM_RBUTTONUP The right mouse button was released.
WM_XBUTTONDBLCLK Windows 2000/Windows XP: An X mouse button was double-clicked.
WM_XBUTTONDOWN Windows 2000/Windows XP: An X mouse button was pressed.
WM_XBUTTONUP Windows 2000/Windows XP: An X mouse button was released.
А координаты попробуй получить следующим образом
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
почему то получение координат мыши у меня не
работает, вообщем получаю следующие ошибки:
2 error(s), 0 warning(s)
error C2065: 'GET_X_LPARAM':undeclared identifier
error C2065: 'GET_Y_LPARAM':undeclared identifier
Вот кусок функции:
case WM_MOUSEMOVE:
{
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
return 0;
}
ПРичём в прошлый раз мне говорили:
Get_X_LPARAM, но я уже всяко пробовал и всё результат тотже - две ошибки,
не мог бы кто- нибудь выложить рабочий вариант
(какой-нибудь исходник.)
xPos = LOWORD(lParam);
yPos = HIWORD(lParam);
не работает для WinAPI?
А вот так
xPos = LOWORD(lParam);
yPos = HIWORD(lParam);
не работает для WinAPI?
Последний способ я проверять не стал, так
сам придумал как получать координаты от мыши.
Покопавшись с полчасика в хелпаке для VC++5.0
нашёл расписанную структуру MSG в ней есть
поле pt, оно в свою очередь является объектом,
стуктуры POINT т.е. там то координаты и есть:
xPos = msg.pt.x;
yPos = msg.pt.y;
Дело в том, что я недавно оставлял точно такой же вопрос и мне ответили почти тоже самое, но
почему то получение координат мыши у меня не
работает, вообщем получаю следующие ошибки:
2 error(s), 0 warning(s)
error C2065: 'GET_X_LPARAM':undeclared identifier
error C2065: 'GET_Y_LPARAM':undeclared identifier
Вот кусок функции:
case WM_MOUSEMOVE:
{
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
return 0;
}
ПРичём в прошлый раз мне говорили:
Get_X_LPARAM, но я уже всяко пробовал и всё результат тотже - две ошибки,
не мог бы кто- нибудь выложить рабочий вариант
(какой-нибудь исходник.)
Ошибка выдается потому что ты забыл сделать следующее:
Ошибка выдается потому что ты забыл сделать следующее:
Да, действительно, я забыл про этот инклуд,
но теперь в нём особой нужды нет,
координаты легко получаються так как я написал выше:
xPos = msg.pt.x;
yPos = msg.pt.y;