什么是窗口

您所在的位置:网站首页 当屏幕上有两个以上的窗口时对活动窗口的正确说法是 什么是窗口

什么是窗口

2024-06-27 05:30| 来源: 网络整理| 查看: 265

什么是窗口? 项目06/13/2023 什么是窗口?

显然,窗口是 Windows 的核心。 它们非常重要,以至于它们以它们命名操作系统。 但什么是窗口? 当你想到一个窗口时,你可能会想到这样的事情:

这种类型的窗口称为应用程序窗口或main窗口。 它通常具有带有标题栏、 最小化 和 最大化 按钮以及其他标准 UI 元素的框架。 框架称为窗口 的非工作区 ,之所以称为,是因为操作系统管理窗口的该部分。 框架中的区域是 工作区。 这是程序管理的窗口的一部分。

下面是另一种类型的窗口:

如果你不熟悉 Windows 编程,你可能会惊讶于 UI 控件(如按钮和编辑框)本身就是窗口。 UI 控件和应用程序窗口之间的主要区别在于控件本身不存在。 相反,控件相对于应用程序窗口进行定位。 拖动应用程序窗口时,控件会随预期一起移动。 此外,控件和应用程序窗口可以相互通信。 (例如,应用程序窗口接收来自 button 的单击通知。)

因此,当你考虑 窗口时,不要简单地考虑 应用程序窗口。 相反,请将窗口视为一个编程构造,该构造可以:

占据屏幕的特定部分。 在给定时刻可能可见,也可能不可见。 知道如何绘制自身。 响应来自用户或操作系统的事件。 父窗口和所有者窗口

对于 UI 控件,控件窗口称为应用程序窗口的 子 窗口。 应用程序窗口是控件窗口的 父 窗口。 父窗口提供用于定位子窗口的坐标系。 具有父窗口会影响窗口外观的各个方面;例如,剪裁子窗口,以便子窗口的任何部分都不能显示在其父窗口的边框之外。

另一种关系是应用程序窗口与模式对话框窗口之间的关系。 当应用程序显示模式对话框时,应用程序窗口是 所有者 窗口,而对话框是 拥有 的窗口。 拥有的窗口始终显示在其所有者窗口的前面。 当所有者最小化时,它将隐藏,并且与所有者同时销毁。

下图显示了一个应用程序,该应用程序显示一个带有两个按钮的对话框:

应用程序窗口拥有对话框窗口,对话框窗口是两个按钮窗口的父窗口。 下图显示了这些关系:

窗口句柄

Windows 是对象,它们同时具有代码和数据,但它们不是 C++ 类。 相反,程序通过使用称为 句柄的值来引用窗口。 句柄是不透明的类型。 从本质上讲,它只是操作系统用来标识对象的数字。 你可以将 Windows 想象成有一个大表,其中包含已创建的所有窗口。 它使用此表按句柄查找窗口。 (这是否正是它在内部的工作方式并不重要。) 窗口句柄的数据类型为 HWND,通常发音为“aitch-wind”。窗口句柄由创建窗口的函数返回: CreateWindow 和 CreateWindowEx。

若要对窗口执行操作,通常会调用一些采用 HWND 值作为参数的函数。 例如,若要在屏幕上重新定位窗口,请调用 MoveWindow 函数:

BOOL MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint);

第一个参数是要移动的窗口的句柄。 其他参数指定窗口的新位置以及是否应重绘窗口。

请记住,句柄不是指针。 如果 hwnd 是包含句柄的变量,则尝试通过写入 *hwnd 取消引用句柄是错误的。

屏幕和窗口坐标

坐标以与设备无关的像素度量。 当我们讨论图形时,我们将有更多关于与设备无关的像素的独立于设备部分的介绍。

根据你的任务,你可能会测量相对于屏幕、相对于窗口 (包括框架) 或相对于窗口工作区的坐标。 例如,使用屏幕坐标在屏幕上放置窗口,但使用客户端坐标在窗口中绘制。 在每种情况下,源 (0, 0) 始终是区域的左上角。

下一步

WinMain:应用程序入口点

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3