WINDOWS下的窗口及风格

以下内容是我在近一段时间工作中对windows系统中窗口概念的理解和认识,主要是对容易引起混淆的WS_CHILD、WS_POPUP、WS_OVERLAPPED等风格的理解,有不当之处,大家直说无妨!

=====================================================


Child窗口和top-level窗口

Windows窗口总体上可以分为2类,一类带有WS_CHILD风格的窗口,我们称之为Child窗口;另一类是不带WS_CHILD风格的
窗口,称为top-level窗口,这类窗口又分为弹出式窗口(Popup)和重叠窗口(Overlapped)。

【坐标系】
Child窗口使用CLIENT坐标,top-level窗口则使用SCREEN坐标

【父窗口】
1. child窗口必须拥有parent,top-level窗口则可有可无;
2. child窗口只能显示在parent的客户区内,超出部分无法显示;top-level窗口的显示区域则不受parent限制
3. child窗口和top-level窗口都会覆盖住与parent窗口的重叠区域

【显示效果】
1. top-level窗口默认带有边界(border)、标题栏(title bar)、系统菜单(system menu);child窗口默认则没有
2. child窗口通常作为parent窗口的一个元素,共同完成界面效果;top-level窗口则是独立存在的,独立完成界面效果
3. top-level窗口通常包含若干child窗口;child窗口一定直接或间接的属于某一个top-level窗口

=====================================================

Popup窗口和Overlapped窗口

【概念】
1. Popup窗口指带有WS_POPUP风格的窗口
2. Overlapped窗口指带有WS_OVERLAPPED风格,但是不带WS_POPUP(WS_POPUPWINDOW),或WS_CHILD(WS_CHILDWINDOW)风格的窗口,WS_OVERLAPPED风格经常与WS_POPUP、WS_CHILD等风格联合使用。

【区别】
1. Popup窗口的父窗口可有可无,而Overlapped窗口则一定没有父窗口,即使强制设定parent也是无效的
2. Popup窗口的标题栏(title bar)可有可无,而Overlapped窗口则必须有,微软对Overlapped窗口的解释是带有border和title风格的窗口

【共同点】
1. 都是top-level窗口,都使用SCREEN坐标
2. 默认都具有边框、标题栏、系统菜单等风格
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值