0

在我的 MFC 应用程序中,我有 MianFrame 和许多浮动/停靠栏,它们几乎没有共同点。我需要检查是否指向我的复杂框架。我曾尝试使用此代码:

MainFrame::___
{
...
HRGN hrgn = CreateRectRgn(0,0,0,0);
int regionType = GetWindowRgn(hrgn);
if (regionType != ERROR) 
{ 
if ( !PtInRegion(hrgn, p.x, p.y) )  
    return false;
}
DeleteObject(hrgn); 
...
}

但 regionType 总是 == 错误。你能明白为什么吗?或者,您可能知道另一种解决方案吗?

4

2 回答 2

1

您可以尝试调用 GetLastError() 以获得更好的错误代码。

或者您可以尝试使用 GetClientRect() 和 PtInRect() 看看是否能提供更好的结果。

于 2012-09-06T15:12:07.543 回答
0

您可以使用 GetWindowRect() 获取“rect”,然后使用 HRGN hrgn = CreateRectRgn(0,0,0,0),然后使用 hrgn 和 'rect' 获取 SetRectRgn。只要 SetRectRgn 正常返回,你的代码就可以了。

我对此也很陌生。是否需要启动hrgn?

于 2012-09-20T06:51:07.600 回答