加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 为什么最大化的Delphi形式比GetSystemMetrics值宽8个

发布时间:2020-12-13 20:37:40 所属栏目:Windows 来源:网络整理
导读:如果我最大化Delphi形式,宽度和高度值比相应的GetSystemMetrics SM_CXSCREEN和SM_CYSCREEN大8个像素? 例如: 当我右键单击我的屏幕并获得属性时,我的屏幕分辨率为1680 X 1050.这些是从GetSystemMetrics(SM_CXSCREEN)和GetSystemMetrics(SM_CYSCREEN)返回的
如果我最大化Delphi形式,宽度和高度值比相应的GetSystemMetrics SM_CXSCREEN和SM_CYSCREEN大8个像素?

例如:

当我右键单击我的屏幕并获得属性时,我的屏幕分辨率为1680 X 1050.这些是从GetSystemMetrics(SM_CXSCREEN)和GetSystemMetrics(SM_CYSCREEN)返回的相同值.

当我在Delphi应用程序中最大化表单时,我得到1688的宽度和1058的高度.有8像素的差异.是什么导致这种差异?

当最大化窗口最初实现时,设计者想要删除调整大小的边框.而不是删除它们,而是决定将这些边界绘制在屏幕边缘之外,在那里它们将不会被看到.因此,最大化窗口的相当令人惊讶的窗口矩形.

随着多监视器系统的出现,这一实现决策成为一个问题.到那时,有些应用程序依赖于此行为,因此Windows团队决定为了兼容性而保留该行为.这意味着最大化的窗口泄漏到相邻的屏幕上.随着时间的推移,窗口管理器获得了能够抑制泄漏的功能.

像往常一样,Raymond Chen有一篇文章涵盖了细节:Why does a maximized window have the wrong window rectangle?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读