Mac OS Carbon - установка положения окна с помощью MoveWindowStructure - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь создать эффективный инструмент для манипулирования размером / положением окна.

Я нашел скрипт C / Carbon, который я модифицировал для своих целей. Я пытался понять документы Apple для разработчиков по Carbon, но это не так просто.

Тем не менее, у меня есть следующий код:

#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 по какой-то причине является нулевым. Я хочу, чтобы переднее окно любого класса было видимым, и у меня есть такие окна, поэтому я не уверен, почему оно нулевое.

Любые указатели будут с благодарностью. Это не полный код, просто часть, которая не работает.

...