| PMG http://forum.pmg.org.ru/ |
|
| Вопрос: Обработка мыши и JPG в текстуру http://forum.pmg.org.ru/viewtopic.php?f=1&t=275 |
Страница 1 из 1 |
| Автор: | Woland [ 09 фев 2006 02:05 ] |
| Заголовок сообщения: | Вопрос: Обработка мыши и JPG в текстуру |
Есть пара вопросов: 1. Как обработать нажатие клавиши мыши, есть ли какое-нибудь значение как например у левой стрелки VK_LEFT, как получать координаты мыши я знаю. 2. Возможно ли использовать файлы JPG в качестве текстур, если да, то как. Хочу прогу сделать максимально компактной, а BMP этому, естественно, не способствует... |
|
| Автор: | MagicWolf [ 09 фев 2006 10:20 ] |
| Заголовок сообщения: | |
1 - не совсем понятно . Получаешь координаты указателя и состояние клавиш в зависимости от этого реализуешь свой алгоритм. Например, есть место на экране при нажатии на которое - выход из проги.
2 - это надо либу подходящую использовать. Например Devil. Вот ссылки на либы: http://www.xdp.it/cximage.htm - CxImage for Win http://openil.sourceforge.net/ - DevIL http://www.imagemagick.org/ http://freeimage.sourceforge.net/ http://www.paintlib.de/ http://www.graphicsmagick.org/ По-моему лучше всего DevIL, так как там есть сразу загрузка в текстуру. http://forum.pmg.org.ru/viewtopic.php?t=16 |
|
| Автор: | Woland [ 09 фев 2006 19:13 ] |
| Заголовок сообщения: | |
Не, как сделать обработку события мне ясно, просто я не знаю значение клавиш мыши, знаю для стрелок (VK_LEFT, VK_RIGHT,..), знаю для F'ов и т.д., а для мыши я знаю только как получить ее местоположение [GetMousePos(POINT mpos)], я не знаю как получить сосотояние клавиш... |
|
| Автор: | MagicWolf [ 10 фев 2006 14:00 ] |
| Заголовок сообщения: | |
GetMousePos - не знаю такой функции в Win32 API?! Знаю только что нужно обрабатывать сообщения от Win. Вот пример: Код: case WM_LBUTTONDOWN:
ev_mouse.button_mouse |= 1; ev.what[0] = EVENT_MOUSE_KEY; ev.data[0] = (void*)&ev_mouse; ev.count = 1; event_scenes(); break; case WM_LBUTTONUP: ev_mouse.button_mouse &= 0xe; ev.what[0] = EVENT_MOUSE_KEY; ev.data[0] = (void*)&ev_mouse; ev.count = 1; event_scenes(); break; case WM_RBUTTONDOWN: ev_mouse.button_mouse |= 2; ev.what[0] = EVENT_MOUSE_KEY; ev.data[0] = (void*)&ev_mouse; ev.count = 1; event_scenes(); break; case WM_RBUTTONUP: ev_mouse.button_mouse &= 0xd; ev.what[0] = EVENT_MOUSE_KEY; ev.data[0] = (void*)&ev_mouse; ev.count = 1; event_scenes(); break; case WM_MBUTTONDOWN: ev_mouse.button_mouse |= 4; ev.what[0] = EVENT_MOUSE_KEY; ev.data[0] = (void*)&ev_mouse; ev.count = 1; event_scenes(); break; case WM_MBUTTONUP: ev_mouse.button_mouse &= 0xb; ev.what[0] = EVENT_MOUSE_KEY; ev.data[0] = (void*)&ev_mouse; ev.count = 1; event_scenes(); break; case WM_MOUSEMOVE: ev_mouse.x_mouse = GET_X_LPARAM(lParam); ev_mouse.x_mouse = GET_Y_LPARAM(lParam); ev.what[0] = EVENT_MOUSE_XY; ev.data[0] = (void*)&ev_mouse; ev.count = 1; event_scenes(); break; |
|
| Автор: | Woland [ 10 фев 2006 19:40 ] |
| Заголовок сообщения: | |
Упс... Я имел ввиду GetCursorPos. Спасибо за помощь! |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|