Mac OS Carbon –使用MoveWindowStructure设置窗口位置

时间:2019-04-21 17:52:02

标签: c objective-c macos macos-carbon

我正在尝试创建用于执行某些窗口大小/位置操作的性能工具。

我发现我出于自己的目的对其进行了修改的C / Carbon脚本。我一直在尝试了解有关Carbon的Apple Developer文档,但这并不简单。

也就是说,我有以下代码:

#include <unistd.h>
#include <stdio.h>
#include <ApplicationServices/ApplicationServices.h>
#include <Carbon/Carbon.h>

extern WindowRef GetFrontWindowOfClass(
  WindowClass   inWindowClass,
  Boolean       mustBeVisible
);

extern OSStatus MoveWindowStructure(
  WindowRef   window,
  short       hGlobal,
  short       vGlobal
);

int main(void) {
    WindowRef win = GetFrontWindowOfClass( kAllWindowClasses, true );

    if ( win == NULL ) {
        printf("NULL");
    } else {
        printf("NOT NULL");
    }

    OSStatus s = MoveWindowStructure( win, 200, 100 );
}

这在我编译时不会引发任何错误,但是由于某些原因,WindowRef win为null。我确实想要任何可见类的最前面的窗口,并且我有这样的窗口,所以我不确定为什么它为空。

任何指针将不胜感激。这不是完整的代码,只是不起作用的部分。

0 个答案:

没有答案