原文地址:
http://blog.163.com/cumt_xl/blog/static/19071504420136911838683/
Q: What is a top-level window?
A: A top-level window is a window that is not child, i.e. it has not WS_CHILD style set.
Notes
- unlike the child windows, a top-level window can be displayed anywhere in the screen;
- many definitions state that a top-level window is "a window that has no parent";
that is correct but can lead in a confusion: many people think that every window which is created passing a valid hWndParent in CreateWindow(Ex) "has a parent" then, according to the definition it is not top-level;
in fact hWndParent may be either a handle to parent or owner window;
if hWndParent is a valid window handle and WS_CHILD style is not set, then we have a top-level owned window; - a top-level window can or can not be owned but is never a child; further we can say that it can have an owner but never has a parent.
- top-level windows can be either overlapped windows (having WS_OVERLAPPED style and generally used as application main window) or popup windows (having WS_POPUP style, usually temporary windows like message boxes and dialogs);
- the coordinates used in CreateWindow(Ex), MoveWindow, SetWindowPos, and so on are always scren coordinates (relative to top-left corner of the screen).
时间: 2024-10-27 12:21:56