好的,所以我有一个自定义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等。
如果您需要有关此或任何其他信息,请告诉我。
谢谢
最佳答案
由于GetWindowRect
将LPRECT
作为第二个参数,因此无法传递RectEx
。
您可以使用RectEx
做什么,可以按如下方式重载typecasting运算符
operator LPRECT () const
{
return &dimensions;
}
但是,由于不希望的类型转换,不建议重载类型转换。仅在确定时才这样做。