设为首页 加入收藏

TOP

17.5.1 CONE
2013-10-07 01:05:15 来源: 作者: 【 】 浏览:77
Tags:17.5.1 CONE

17.5  屏幕共享

到目前为止,我们已经讲述了绘图的基础知识,而在很多情况下,都不得不告诉读者去做什么,而没有解释为什么,比如,需要在DrawOneTileNow ()函数中调用ActivateGc()和BeginRedraw()函数。现在该准确解释窗口和控件如何共同工作,使应用程序之间能共享屏幕,让应用程序的不同部分能够共同工作。

Symbian 操作系统是完全的多任务系统,其中可以并发运行多个应用程序。如图17.7所示,屏幕是所有应用程序之间必须共享的单一资源。Symbian 操作系统使用窗口服务器来实现这一共享。每个应用程序在一个或多个窗口上进行绘制;窗口服务器管理窗口,确保显示正确的窗口,必要时显示或隐藏窗口,并管理之间的重叠。

  

应用程序也必须在它自己的组件(component)之间有效地共享屏幕。这些组件包括主应用程序视图、按钮栏和其他装饰组件:对话框、菜单以及诸如此类的组件。应用程序为它的组件使用控件。某些控件(比如对话框)使用一个完整的窗口,但许多其他的控件只是在现有窗口上与其他控件并列。按钮栏上的按钮就是这样,连三子游戏的主应用程序视图中的棋格和状态窗口也是如此。

17.5.1  CONE

所有GUI客户使用CONE(即控件环境)为控件和窗口服务器之间的通信提供基本框架,如图17.8所示。

窗口服务器维护所有应用程序使用的窗口。它跟踪它们的(x,y)位置和大小,还有它们从前到后的次序,这被称为z坐标(z coordinate)。当移动窗口,并且它们的z次序发生变化时,部分窗口显露,因而需要重绘。对于每一窗口,窗口服务器维护一个无效区域。当部分窗口无效时,窗口服务器创建一个重绘事件,将它发送到窗口拥有的应用程序,这样应用程序可以重绘它。

   
   

每一个应用程序都是窗口服务器的一个客户(参考第8章的客户端-服务器框架描述)。不过,对于基本的GUI编程(www.cppentry.com),并不需要对客户端-服务器框架有很详细的理解,因为CONE封装了客户端接口。

CONE 将一个或多个控件与每个窗口关联,并处理窗口服务器事件。例如,对于使用所指明的窗口并落在无效区域限制矩形之内的所有控件,通过调用Draw()函数处理重绘事件。

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

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇17.5.3 复合控件 下一篇C#.Net FrameWork简介

评论

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