gpt4 book ai didi

c++ - RECT ,将自定义 rect 结构传递到需要 RECT 的函数中

转载 作者:行者123 更新时间:2023-11-30 04:11:39 27 4
gpt4 key购买 nike

好的,所以我有一个自定义的 rect 函数。自定义rect如下:

typedef struct tagRECTEx{
// long left;
// long top;
// long right;
// long bottom;
RECT dimensions;

int width()) {
return dimensions.right-dimensions.left;
}
int height(){
return dimensions.bottom - dimensions.top;
}

} RectEx;

现在不用说:

RECT windowrect;
windowrect = GetWindowRect(hWnd,&windowrect);

我希望它是这样的:

RectEx windowrectex;
windowrect = GetWindowRect(hWnd,&windowrectex);

....

现在无法编译,因为它无法将 rectex 转换为 tagRECT,好的,我明白了。

所以在过去的几天里,我一直在搜索自定义转换和覆盖运算符。

我什至在尝试实现类似的东西:

GetWindowRect(hWnd, (RectEx)&windowrectex);

但不管我在做什么,我就是想不出如何让它发挥作用。

我想使用我自己的 rect 结构,因为它会自动为我获取 rect 的宽度和高度,而不是做 rect.right-rect.left 等。

如果您需要更多有关此信息或任何信息,请告诉我。

谢谢

最佳答案

由于GetWindowRectLPRECT作为第二个参数,因此无法传递RectEx

使用 RectEx 可以做什么,可以按如下方式重载类型转换运算符

operator LPRECT () const 
{
return &dimensions;
}

但是,由于不需要的类型转换,不建议重载类型转换。只有当你确定的时候才去做。

关于c++ - RECT ,将自定义 rect 结构传递到需要 RECT 的函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20158903/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com