Re: Особенность или глюк функции SetWindowLong, SetParent и GetP
От: qaz77  
Дата: 23.11.20 07:25
Оценка: 2 (1)
Здравствуйте, Melamed, Вы писали:

M>Если окно имеет стиль WS_POPUP, то результат функции GetParent() всегда возвращает NULL. Если даже вы поменяли родительское окно у такого окна функцией SetParent() на требуемое родительское окно, то несмотря на что забота функции завершается без ошибки, но при функция GetParent() возвращает NULL.


Понятие родителя поддерживается только для дочерних окон WS_CHILD. Стиль WS_CHILD ортогонален WS_POPUP.

Для попап окон существует понятие owner window, которое в просторечье часто также называют родителем.
В Win API существует некоторая путаница, т.к. функции CreateWindow(Ex), SetParent для попап окон устанавливают owner, а не parent вопреки названию параметра/функции.

Получить owner window можно так: GetWindow(hwnd, GW_OWNER)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.