如何在Win32中创建POINT对象?
我试图PtInRect在 Win32 中使用该函数,它接受一个POINT对象。我有 x 和 y 坐标,但我不知道如何POINT从这些坐标中创建一个。我尝试查找它,但只能找到此文档,其中不包含我想要的信息。
感谢您的帮助。
回答
问题:
您正在为自己制造麻烦,因为您尝试POINT使用malloc. 顺便说一句,您并不总是需要动态分配并初始化malloc您在注释中指出的不需要使用的任何结构,您可以直接创建对象。
解决方案:
正如tkausl评论中所指出的,POINT以与任何其他结构相同的方式创建。
关于如何创建一个的一些例子POINT:
int main()
{
int someX = 100;
int someY = 100;
RECT testRect1 = {0,0,200,200};
RECT testRect2 = {150,150,350,350};
POINT p1{someX,someY};
POINT p2 = {someX,someY};
POINT p3;
p3.x = someX;
p3.y = someY;
std::cout << (bool) PtInRect(&testRect1,p1) << std::endl;
std::cout << (bool) PtInRect(&testRect1,p2) << std::endl;
std::cout << (bool) PtInRect(&testRect1,p3) << std::endl;
std::cout << (bool) PtInRect(&testRect1,{someX,someY}) << std::endl;
std::cout << (bool) PtInRect(&testRect2,p1) << std::endl;
std::cout << (bool) PtInRect(&testRect2,p2) << std::endl;
std::cout << (bool) PtInRect(&testRect2,p3) << std::endl;
std::cout << (bool) PtInRect(&testRect2,{someX,someY}) << std::endl;
}