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

Нелогичная работа mouse_event MOUSEEVENTF_MOVE - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как изменить имя контакта при посылке смс через usb-модем? http://www.cyberforum.ru/cpp/thread1363510.html
Доброе утро! Не знаю, верно ли выбрал раздел, но т.к. писать буду на C++, решил сюда. Есть задача: организовать рассылку смс. Никогда ранее таким не занимался. Первое что пришло в голову - купить...
C++ Boost + Cmake + Clion Помогите мне подключить Boost к Clion на Windows. Перепробовал уже кучу вариантов - ничего не выходит, заголовки только инклудятся, а библиотеки походу не подключаются. Вот мой пример... http://www.cyberforum.ru/cpp/thread1362663.html
C++ Коды, приводящие к неожиданным результатам
Код помещения кортежа в стрим. Компилируется. По счастливому случаю обнаружил автоматическую ошибку до тестирования. Кто скажет, почему следующий блок работал бы не так как ожидалось? ...
Куда двигаться в с++ или становление программистом C++
Всем привет. Немного о себе: закончил колледж, учусь дальше в универе на программиста специальность ПОИТ. Вообщем вопрос у меня такой, очень хочу развиваться дальше в сторону с++, после всего...
C++ Создание 2d движка http://www.cyberforum.ru/cpp/thread1356009.html
Здравствуйте, я начинающий программист c++, но знаю другие языки да и c++ уже не плохо. В общем загорелся идеей создать простейший 2d движок. Без звука, простейший,чтобы создавалось окно, загружалась...
C++ Формальная постановка для игры крестики и нолики Доброго времени суток. Написал игру крестики и нолики размерностью 4х4. Нужно написать к этой игре формалку, а я понятия даже не имею о том как ее написать. Буду рад если поможете) подробнее

Показать сообщение отдельно
DarkPower
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 80

Нелогичная работа mouse_event MOUSEEVENTF_MOVE - C++

29.01.2015, 04:52. Просмотров 1412. Ответов 6
Метки (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
void Draw()
{
    HDC hdc = GetDC(HWND_DESKTOP);
    int cx = GetSystemMetrics(SM_CXSCREEN);
    int cy = GetSystemMetrics(SM_CYSCREEN);
    int x = RandomMinMax(1,cx);
    int y = RandomMinMax(1,cy);
    int size = 5;
    POINT p;
    GetCursorPos(&p);
    for(int i =0;i<50;i++) std::cout << "\n";
    
    int fx,fy;
    if (p.x > x) fx = p.x-x;
    if (x >= p.x) fx= x=p.x;
    std::cout << "\np.x = " << p.x;
    std::cout << "\nx = " << x;
    std::cout << "\nx-p.x = " << x-p.x;
    mouse_event(MOUSEEVENTF_MOVE, x-p.x,y-p.y, 0, 0);
    GetCursorPos(&p);
    std::cout << "\np.x = " << p.x;
    std::cout << "\nx = " << x;
    for(int i = 0-size; i<size; i++)
    {
        for(int j=0-size; j<size;j++)
        {
            SetPixel(hdc,x-i,y-j,RGB(RandomMinMax(180,255),0,0));
        }
    }
}
Код создает рандомно на экране квадратик. И перемещает (должен) туда мышку.
Код вроде бы правильный, но перемещает он не на квадратик, а куда ему захотелось...
В чем ошибка? Не пойму...

Пример выполнения:
Пускай XR=20 (рандомная позиция)
XС=10 (текущия позиция курсора)
FX=XR-XC; (10)
то если выполнить mouse_event(MOUSEEVENTF_MOVE, FX,0, 0, 0); (Позиция Х курсора должна быть сдвинута в право на 10 пикселей)

Пускай XR=5 (рандомная позиция)
XС=10 (текущия позиция курсора)
FX=XR-XC; (-5)
то если выполнить mouse_event(MOUSEEVENTF_MOVE, FX,0, 0, 0); (Позиция Х курсора должна быть сдвинута в лево на 5 пикселей)
Но программа, двигает как-то рандомно.
если же вписать вручную:
mouse_event(MOUSEEVENTF_MOVE, 10,0, 0, 0) - то курсор отлично сдвигается в право на 10 пикселей..
В чем проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru