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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Как изменить имя контакта при посылке смс через usb-модем? http://www.cyberforum.ru/cpp/thread1363510.html
Доброе утро! Не знаю, верно ли выбрал раздел, но т.к. писать буду на C++, решил сюда. Есть задача: организовать рассылку смс. Никогда ранее таким не занимался. Первое что пришло в голову - купить usb модем и с помощью AT-команд делать все необходимое. Однако заказчик кроме всего прочего пожелал, чтобы смс приходили не с конкретного номера телефона, а например вместо номера было бы "MAGAZIN...
C++ Boost + Cmake + Clion Помогите мне подключить Boost к Clion на Windows. Перепробовал уже кучу вариантов - ничего не выходит, заголовки только инклудятся, а библиотеки походу не подключаются. Вот мой пример CMakeLists.txtcmake_minimum_required(VERSION 2.8.4) project(Cyberforum) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") #set(CMAKE_EXE_LINKER_FLAGS -static) set(SOURCE_FILES main.cpp)... http://www.cyberforum.ru/cpp/thread1362663.html
C++ Коды, приводящие к неожиданным результатам
Код помещения кортежа в стрим. Компилируется. По счастливому случаю обнаружил автоматическую ошибку до тестирования. Кто скажет, почему следующий блок работал бы не так как ожидалось? for(uint8_t idx = 0; idx < inputDataSet->Fields->Count; idx++) switch (inputDataSet->Fields->Fields->DataType){ case ftBoolean: { writer->WriteBoolean(inputDataSet->Fields->Fields->AsBoolean); break; }...
Куда двигаться в с++ или становление программистом C++
Всем привет. Немного о себе: закончил колледж, учусь дальше в универе на программиста специальность ПОИТ. Вообщем вопрос у меня такой, очень хочу развиваться дальше в сторону с++, после всего изученного в коллеже и универе, имеются много теоретических знаний и практических немного, но такое чувство что я ничего не знаю :) Я знанию синтаксис так сказать, и учебную программу, тоесть я могу:...
C++ Создание 2d движка http://www.cyberforum.ru/cpp/thread1356009.html
Здравствуйте, я начинающий программист c++, но знаю другие языки да и c++ уже не плохо. В общем загорелся идеей создать простейший 2d движок. Без звука, простейший,чтобы создавалось окно, загружалась картинка(спрайт) и двигалась по кнопкам. Помогите, подкиньте ссылок, литературы. Движок c++, Directx, 2d.
C++ Формальная постановка для игры крестики и нолики Доброго времени суток. Написал игру крестики и нолики размерностью 4х4. Нужно написать к этой игре формалку, а я понятия даже не имею о том как ее написать. Буду рад если поможете) подробнее

Показать сообщение отдельно
DarkPower
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 79
29.01.2015, 04:52     Нелогичная работа mouse_event MOUSEEVENTF_MOVE
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 пикселей..
В чем проблема?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru