[翻译]-WinCE 程序设计 (3rd 版)--4.1 子窗口

 

子窗口
每个窗口是通过父子关系体系连接到一起的。应用程序创建一个没有父亲的主窗口,称为顶层窗口。该窗口可能包含(也可能没有包含)有窗口,称为子窗口。子窗口会被父窗口裁减。也就是说,子窗口超出父窗口边沿的部分是不可见的。当父窗口被销毁时,子窗口自动被销毁。当父窗口移动的时候,子窗口随父窗口一起移动。

从程序角度看子窗口同顶层窗口是一样的。您可以使用CreateWindow或CreateWindowsEx函数来创建它们,和顶层窗口一样,每个子窗口都有一个窗口过程来处理消息,并且每个都可以包含自己的子窗口。要创建子窗口,需要将CreateWindow或CreateWindowEx的参数dwStyle设置为WS_CHILD。另外,对在顶层Windows CE窗口中没有使用的hMenu参数,可以传一个ID用以引用该子窗口。

在Windows CE下,顶层窗口和子窗口之间还有另外一个主要的不同点。Windows CE shell只给具有WS_OVERLAPPED和WS_VISIBLE风格的顶层窗口发送WM_HIBERNATE消息。(这种情况下的窗口可视与用户是否可以看见是无关的。如果有其它窗口在Z轴方向盖住了该窗口,该窗口对系统是可见的,但用户是看不到的。)这意味着不能发送WM_HIBERNATE消息给子窗口和大部分对话框。顶层窗口要么在需要的时候手工发送WM_HIBERNATE消息给它们的子窗口,要么自己执行所有必要的工作来减少应用程序的内存使用量。在使用标准"Explorer shell"的Windows CE系统里,支持在任务栏上显示应用程序按钮,而用于判断WM_HIBERNATE消息目标窗口的规则,一样适用于判断哪些窗口获得了任务栏上的按钮。

窗口除了有父子关系外,还有一种拥有和被拥有的关系。被拥有的窗口并不被其拥有者裁剪。但是,被拥有的窗口总是出现在拥有者的Z坐标的上方。如果拥有者最小化了,它拥有的所有窗口都被隐藏。同样地,如果该窗口被销毁,其拥有地所有窗口都被销毁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值