Win32 window Owner vs window Parent?

Jon Tackabury picture Jon Tackabury · Feb 3, 2009 · Viewed 29.2k times · Source

In Win32 programming, what is the difference between a window's parent and a window's owner? I thought I had it figured out, then I came across this code:

SetWindowLong(handle, GWL_HWNDPARENT, foo);

This actually sets the window's owner, not the parent - despite the GWL_HWNDPARENT being used. Are the terms parent/owner interchangeable, or is there actually a difference?

Answer

Maurice Flanagan picture Maurice Flanagan · Mar 5, 2009

Ownership is a relationship between two top level windows while Parent is a relationship between a top level and a WS_CHILD, or a WS_CHILD and another WS_CHILD.

The parent of a button is the form it is on, while a message box is owned by the form that showed it.

Read this article from Microsoft Win32 Window Hierarchy and Styles to get a much clearer understanding of Ownership, Parenting, ZOrder, SetWindowLong, GetWindow and all the other nasty bits of the Win32 api for creating window relationships.

EDIT: Looks like Microsoft took down that content, here is another reasonable summary of Ownership / Parenting.