Какие Win32API соответствуют значениям окна «Родитель» и «Владелец», отображаемым MS Spy ++? - PullRequest
2 голосов
/ 15 июня 2009

Я хотел бы получить те же значения через код. Однако я бы хотел получить самые верхние или корневые окна в иерархии

Кажется, у меня есть Root Parent с

HWND rootWinHandle = GetAncestor(activatedWinHandle, GA_PARENT);

Однако я не могу правильно открыть окно владельца. Пробовал

HWND rootOwnerWinHandle = GetAncestor(activatedWinHandle, GA_ROOTOWNER);

Для определенного немодального диалога Spy ++ возвращает окно Main Exe, тогда как вышеприведенная строка возвращает ввод, т.е. Я смотрю на неправильный API?
Я бы хотел получить это без MFC, если это возможно ... потому что больше ничего в моем проекте не требуется.

Ответы [ 4 ]

1 голос
/ 15 июня 2009

См. Флаг GW_OWNER для GetWindow .

Документация GetParent гласит:

Если окно является дочерним окном, возвращаемое значение является дескриптором родительского окна. Если окно является окном верхнего уровня, возвращаемое значение является дескриптором окна владельца.

1 голос
/ 15 июня 2009

Только немного понимания, я могу добавить это от Рэймонда Чена:

Помните, что владелец и родитель - это два разные вещи.

Модальные диалоги отключают своих ВЛАДЕЛЬЦЕВ. Все окна верхнего уровня имеют рабочий стол как их РОДИТЕЛЬ.

От: Что особенного в окне рабочего стола?

1 голос
/ 15 июня 2009

Попробуйте GetParent (). Я считаю, что это вернет окно владельца окна без стиля WS_CHILD и родительское окно окна с WS_CHILD.

0 голосов
/ 27 марта 2011

Специальная демоверсия (+ src):

http://files.rsdn.ru/42164/parentowner.zip

скриншот: http://files.rsdn.ru/42164/parentowner.png

керосиновый

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...