1.判断一个窗口的状态
是否最小化:BOOL IsIconic(HWND hWnd);
是否最大化:BOOL IsZoomed(HWND hWnd);
2.窗口之间有包含与被包含的关系,可以看作是一个容器,容器里面又有很多容器,大的包含小的.
桌面是所有窗口的容器,它所拥有的窗口面积是最大的,就是整个显示器屏幕.
可以通过 GetDesktopWindow() 函数取得它的句柄.
桌面被创建之后,其他的窗口才能够被创建和显示.
这一点你可以在每次启动windows时察觉到的.
每当用户启动一个程序,都会实例化一个应用程序,它有一个实例句柄Instance,这个句柄有操作系统来管理你的程序(每个程序必须有一个实例,程序也可以创建多个实例),比如发送窗口消息给它,销毁实例退出程序,通过实例句柄来加载属于程序的资源,或者把系统资源供给程序调用(这就是使用系统资源为什么要及时释放的原因,因为别的应用程序也需要调用系统资源)等等.
实例句柄是WinMain()函数的第一个参数.程序创建之后,我们可以使用LONG GetWindowLong(HWND hWnd, int nIndex)函数取得实例句柄:
GetWindowLong(hWnd,GWL_HINSTANCE);
我们通过HWND GetParent(HWND hWnd)函数取得包含窗口(父窗口),这里hWnd是被包含窗口(子窗口)的句柄;同样我们也可以使用GetWindowLong(hWnd,GWL_HWNDPARENT);来取得包含窗口的句柄
3.窗口的位置和大小
请看下图: