我正在尝试找到一个Carbon API,该API可以从窗口ID中为我提供WindowRef,并希望该窗口具有界限?
编辑:我发现API
extern WindowRef HIWindowFromCGWindowID(CGWindowID inWindowID);但是我无法使用它。我包括了carbon header ,并且还将其框架添加到了项目中。 HI API是否还有其他要求?
任何帮助表示赞赏。
感谢您的时间。
最佳答案
以下应该做的-
CGRect rect;
uint32_t windowid[1] = {windowID};
CFArrayRef windowArray = CFArrayCreate ( NULL, (const void **)windowid, 1 ,NULL);
CFArrayRef windowsdescription = CGWindowListCreateDescriptionFromArray(windowArray);
CFDictionaryRef windowdescription = (CFDictionaryRef)CFArrayGetValueAtIndex ((CFArrayRef)windowsdescription, 0);
if(CFDictionaryContainsKey(windowdescription, kCGWindowBounds))
{
CFDictionaryRef bounds = (CFDictionaryRef)CFDictionaryGetValue (windowdescription, kCGWindowBounds);
if(bounds)
{
CGRectMakeWithDictionaryRepresentation(bounds, &rect);
}
}
CFRelease(windowArray);
关于macos - 获取WindowRef的边界?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6593710/