Некоторые проблемы с функциями GetCursorPos () и SetCursorPos () в C ++ - PullRequest
1 голос
/ 04 февраля 2020

Я новый пользователь C ++ и не знаю всех о типах переменных.

У меня есть этот код, но он не работает нормально. Для нормального я имею в виду - после запуска курсор должен быть случайным движением для экрана от -25 до 25 пикселей.

Извините, если я предоставил мало информации. Спроси меня, я могу отправить то, что ты хочешь. И извините за мой плохой Энгли sh.

#include <iostream>
#include "MyForm1.h"
#include <windows.h>
#include <cstdlib>
#include <winuser.h>
#include <playsoundapi.h>
using namespace System;
using namespace System::Windows::Forms;
using namespace std;




// Cursor random moving here :3

int shakecursor() {
    POINT p;

    int __cdecl GetCursorPos(int &p);
    cout <<  p.x << p.y << endl;

    int x_p1;
    int y_p1;

    x_p1 = rand() % 0 -25;
    y_p1 = rand() % 0 -25;

    int x_p = p.x + x_p1;
    int y_p = p.y + y_p1;

    int __cdecl SetCursorPos(int x_p1, int y_p1);


    Sleep(10);
    return 0;
}

[STAThreadAttribute]
int main(cli::array<System::String ^> ^args) {





    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    My3yPaB::MyForm mainForm;
    Application::Run(%mainForm);

    bool shaking = true;

    while (shaking = true) {
        shakecursor();

    }

}```

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Итак, я исправил эту проблему, и программа ничего не делает здесь код:

#include <iostream>
#include "MyForm1.h"
#include <windows.h>
#include <cstdlib>
#include <winuser.h>
#include <Mmsystem.h> 
#include <playsoundapi.h>
#pragma comment (lib, "User32.lib")
using namespace System;
using namespace System::Windows::Forms;
using namespace std;
int shakecursor() {
    POINT p;

    GetCursorPos(&p);
    cout <<  p.x << p.y << endl;

    int x_p1;
    int y_p1;

    x_p1 = rand() % 51 - 25;
    y_p1 = rand() % 51 - 25;

    int x_p = p.x + x_p1;
    int y_p = p.y + y_p1;

    SetCursorPos(x_p, y_p);


    Sleep(10);
    return 0;
}
[STAThreadAttribute]
int main(cli::array<System::String ^> ^args) {
    //PlaySound(L"start.mp3", NULL, NULL);
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    My3yPaB::MyForm mainForm;
    Application::Run(%mainForm);
    bool shaking = true;
    while (shaking = true) {
        shakecursor();      
    }

}```
0 голосов
/ 04 февраля 2020

Эти

int __cdecl GetCursorPos(int &p);
int __cdecl SetCursorPos(int x_p1, int y_p1);

не являются функциональными вызовами. они являются объявлениями функций.

Вместо этого, кажется, вы имеете в виду

GetCursorPos( p );

и

SetCursorPos( x_p, y_p );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...