【发布时间】:2020-06-24 12:26:23
【问题描述】:
我最近刚刚学会了如何获得我的鼠标位置,但是如果我移动我的窗口就会出现问题。例如,我想在鼠标坐标(x = 100,y = 100)的位置绘制一个点,这样系统将在窗口中的该坐标处绘制,这就是问题,因为鼠标位置是根据位置读取的的屏幕而不是窗口。如果我能以某种方式根据窗口而不是屏幕获取鼠标坐标,就可以解决问题。
#include<graphics.h>
#include<iostream>
#include<windows.h>
using namespace std;
int main()
{
initwindow(800,600);
POINT CursorPosition;
while(1)
{
GetCursorPos(&CursorPosition);
cout << CursorPosition.x << endl;
cout << CursorPosition.y << endl;
if(GetAsyncKeyState(VK_LBUTTON)) {
bar(CursorPosition.x, CursorPosition.y, CursorPosition.x+50,
CursorPosition.y+50);
}
delay(5);
Sleep(5);
system("cls");
}
}
【问题讨论】:
-
我移动我的窗口它有问题。请帮忙谢谢!我们不知道问题所在。虽然请注意
graphics.h不是现代代码。它原本打算在 1990 年代在 DOS 上运行,而不是在 2020 年在 Windows 机器上运行。此外,在显示的代码中,您似乎根本没有使用graphics.h(除了包含标题)。 -
什么样的“问题”,文森特?
-
@Vincent 你还没有解释“问题”是什么?您的代码中某处缺少
},您的代码可能无法编译。这是问题吗?请edit您的问题并澄清。如果存在编译错误,请发布完整的错误日志。 -
我们希望您在问题中描述问题,以节省时间 - 我们每天都会收到数千个问题,因此您正在争夺我们的时间!帮助我们帮助您。 :)
-
我相信(我对这个主题的记忆正在消退)你需要一个你正在绘制的窗口的句柄来计算窗口坐标中的位置。话虽如此,我真的不认为您应该将 windows api 和 25 岁的 bgi 混合在一起。我不相信端口直接暴露了 windows api。