Windows SDK:What is a top-level window?
2014-09-21 10:38
316 查看
原文地址:Here
Q:什么是顶层窗口?
A:顶层窗口是非子窗口的窗口,例如,没有设置WS_CHILD的style。
注意:
1.不像子窗口,顶层窗口可以被显示在屏幕的任意位置;
2.一些定义为顶层窗口是“没有父窗口的窗口”;这正确但会引起混淆:很多人就会认为每一个窗口被CreateWindow(EX)创建时传递了有效的hWndParent参数“就拥有父窗口”,依据此定义它们就不是顶层窗口;实际上hWndParent参数可能或者是父窗口句柄或者是所有者窗口(owner window)句柄;假如hWndParent参数有效并且并未设置WS_CHILD的style,那么我们就创建了一个顶层被所有者窗口(ownered window);
3.一个顶层窗口可以被所有(ownered)也可以不被所有但是他绝不是子窗口(child);我们可以更直接的说顶层窗口可以有所有者(owner)但是决不能有父窗口(parent);
4.顶层窗口可以说或者是overlapped windows(拥有WS_OVERLAPPED style通常应用程序主窗口)或者是popup windows(拥有WS_POPUP style,通常是一些临时窗口想message boxes和dialogs);
5.在CreateWindow(EX)、MoveWindow、SetWindowPos等等类似函数设置窗口时使用的坐标系总是屏幕坐标系(相对于屏幕的坐上角)。
Examples:
code:
See also
Windows SDK: What is a child window?
Q:什么是顶层窗口?
A:顶层窗口是非子窗口的窗口,例如,没有设置WS_CHILD的style。
注意:
1.不像子窗口,顶层窗口可以被显示在屏幕的任意位置;
2.一些定义为顶层窗口是“没有父窗口的窗口”;这正确但会引起混淆:很多人就会认为每一个窗口被CreateWindow(EX)创建时传递了有效的hWndParent参数“就拥有父窗口”,依据此定义它们就不是顶层窗口;实际上hWndParent参数可能或者是父窗口句柄或者是所有者窗口(owner window)句柄;假如hWndParent参数有效并且并未设置WS_CHILD的style,那么我们就创建了一个顶层被所有者窗口(ownered window);
3.一个顶层窗口可以被所有(ownered)也可以不被所有但是他绝不是子窗口(child);我们可以更直接的说顶层窗口可以有所有者(owner)但是决不能有父窗口(parent);
4.顶层窗口可以说或者是overlapped windows(拥有WS_OVERLAPPED style通常应用程序主窗口)或者是popup windows(拥有WS_POPUP style,通常是一些临时窗口想message boxes和dialogs);
5.在CreateWindow(EX)、MoveWindow、SetWindowPos等等类似函数设置窗口时使用的坐标系总是屏幕坐标系(相对于屏幕的坐上角)。
Examples:
code:
// create a top-level window (not owned) HWND hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPED, // WS_CHILD style is not set, so it's a top-level window. CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, // no handle to the owner, so it's not owned. NULL, hInstance, NULL);code:
// create a top-level window (owned) HWND hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPED, // WS_CHILD style is not set, so it's a top-level window CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, hWndParent, // handle to the owner, so it's an owned window NULL, hInstance, NULL);
See also
Windows SDK: What is a child window?
相关文章推荐
- Java学习札记11:What is serialVersionUID?
- What is the single most influential book every programmer should read?
- 【杭电】[1084]What Is Your Grade?
- 去掉linux系统中让人讨厌的makewhatis
- What is Clean Code?
- What is a classpath?
- HDU——1084 What is your grade?(莫名的Wrong Answer)
- What is REST
- What is pbrun command
- What is the difference between AWT and SWT?
- Regular Expressions (1) ---- What is Regular Expressions?
- what is completion
- What is Volume Mount Points
- What exactly is null in Java?[转]
- zoj 3785 What day is that day?
- What is a GPU and how does it work?
- Data type confusion: what is an int(11)?
- 安装vmware-tools出现"what is the location of the "ifconfig"program on your machine?"
- what is your choice?man with money or man with love?”(你选择什么?有钱人还是爱你的人?)
- [转贴]What is Anti-Pattern 什么是反模式