设为首页 加入收藏

TOP

17.5.2 拥有窗口和寄宿控件(2)
2013-10-07 01:03:33 来源: 作者: 【 】 浏览:60
Tags:17.5.2 拥有 窗口 寄宿 控件

当没有窗口供寄宿时,比如应用程序视图;

当需要备份窗口时,稍后将回过头来讲解该内容;

当需要以任意方式重叠对等控件时,这不符合寄宿控件的更严格的嵌套规则;

当需要后台备份属性时,该属性被对话框和菜单窗格用来保存位于它们后面的窗口的位图。

拥有窗口是控件的一个相当基本的属性。编写一个控件既是寄宿控件又是拥有窗口控件没有太多意义。决定它应该是哪一种控件,然后遵循它。只有小部分控件代码受到这个决定的影响。因此,如果在后来发现先前是独立应用程序视图的控件有窗口可以寄宿,那么应该能够相当容易地修改控件。

比如,在第17.9节的例子中,CExampleHelloControl类改编CHelloWorldAppView,使它变成一个寄宿控件。类声明从以下代码: 

  

这里的本质变化是,必须向控件的 ConstructL()函数传递一个 CCoeControl&参数,告诉它寄宿到哪个CCoeControl。构造代码从:

   

改成:

   

不是调用 CreateWindowL()来创建一个大小合适的窗口,而是调用 SetContainerWindowL()将控件注册为另一个拥有窗口控件的寄宿者。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇17.3.1 模型、视图和控制器模式 下一篇17.5.2 拥有窗口和寄宿控件(1)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: