Форум программистов, компьютерный форум CyberForum.ru

WinApi и обработка сообщений мыши - C++

Восстановить пароль Регистрация
 
ElenaBilyk
 Аватар для ElenaBilyk
4 / 4 / 1
Регистрация: 22.10.2013
Сообщений: 34
27.06.2014, 22:19     WinApi и обработка сообщений мыши #1
Добрый вечер! Извините, если где-то уже есть такой вопрос - я не нашла. Я пишу программку типа Paint, и на данный момент возникла проблемка. Я хочу реализовать процесс:
- пользователь нажал на кнопку со значком произвольного рисования
- зажимает левую кнопку мыши
- тянет мышь по экрану
- за мышью пиксель за пикселем прорисовуется линия.
Я знаю, что нужно проверять зажата ли кнопка nFlag == MK_LBUTTON, но у меня оно рисует линии исходя из одной точки куда бы я не повела и где бы я не щелкнула, а я хочу, чтобы оно рисовало как карандаш в пейнте.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ElenaBilyk
 Аватар для ElenaBilyk
4 / 4 / 1
Регистрация: 22.10.2013
Сообщений: 34
27.06.2014, 22:23  [ТС]     WinApi и обработка сообщений мыши #2
Фото того что получилось
Миниатюры
WinApi и обработка сообщений мыши  
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,580
28.06.2014, 10:33     WinApi и обработка сообщений мыши #3
Координаты начала линии, что ли, не меняешь?
zss
Модератор
Эксперт С++
 Аватар для zss
5948 / 5553 / 1785
Регистрация: 18.12.2011
Сообщений: 14,188
Завершенные тесты: 1
28.06.2014, 10:34     WinApi и обработка сообщений мыши #4
Запоминайте предыдущее положение мыши после рисования.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
case WM_MOUSEMOVE:
  {
       static int xold=0,yold=0;
       int x=LOWORD(lParam);
       int y=HIWORD(lParam);
       if(Wparam& MK_LBUTTON)
       {
            HDC hdc=GetDC(hwnd);
            MoveToEx(hdc,xold,yold,NULL);
            LineTo(hdc,x,y);
            ReleaseDC(hwnd,hdc);
       }
        xold=x;yold=y;
        break;
 }
Yandex
Объявления
28.06.2014, 10:34     WinApi и обработка сообщений мыши
Ответ Создать тему
Опции темы

Текущее время: 14:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru