我正在尝试找到一个Carbon API,它可以从窗口ID给我WindowRef,并且我想要这个windowref有边界?
编辑:我找到了API extern WindowRef HIWindowFromCGWindowID(CGWindowID inWindowID);但我无法使用它。我已经包含了碳标头,并且还将其框架添加到项目中。 HI apis还需要其他东西吗?感谢任何帮助。 谢谢你的时间。
答案 0 :(得分:9)
以下应该做 -
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);