简体   繁体   English

C++中GetCursorPos()和SetCursorPos()函数的一些问题

[英]Some problems with the functions GetCursorPos() and SetCursorPos() in C++

I am a new user of C++ and do not know all about types of variables.我是 C++ 的新用户,对变量类型一无所知。

I have this code but it doesn't work normally.我有这个代码,但它不能正常工作。 For normal i mean - after starting cursor must be random moves for -25 to 25 pixel of screen.对于正常,我的意思是 - 启动光标后必须随机移动 -25 到 25 像素的屏幕。

Sorry if i provided few information.抱歉,如果我提供的信息很少。 Ask me i can send what you want.问我我可以发送你想要的。 And sorry for my bad English.很抱歉我的英语不好。

#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();

    }

}```

These这些

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

are not function calls.不是函数调用。 they are function declarations.它们是函数声明。

Instead it seems you mean相反,你的意思是

GetCursorPos( p );

and

SetCursorPos( x_p, y_p );

So i fixed this problem and program doesn't do anything here code:所以我解决了这个问题,程序在这里代码没有做任何事情:

#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();      
    }

}```

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM