symbian入门系列- document对象分析

symbian入门系列- document对象分析

ID:9670014

大小:49.00 KB

页数:2页

时间:2018-05-05

symbian入门系列- document对象分析_第1页
symbian入门系列- document对象分析_第2页
资源描述:

《symbian入门系列- document对象分析》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、symbian入门系列:document对象分析  Document分析「继承关系」  CAknDocument->CEikDocument->CApaDocument「主要作用」  1)是app的datamodel.2)在基于文件的app中,ument提供了对于文件的访问(store/restore)  3)负责创建AppUI,从而可以提供修改ument的基础,CreateAppUiL()负责创建application的appUI对象。  实际上,ument起到了一个中间层(intermediatelayer)的作用。负责在

2、appui和appmodel(engine)以及file之间建立联系。  「AppUI」  -----------------------『Document』  

3、「model」<->「file」  「Document的管理」  1)OpenFileL()  这个函数的功能和app的资源文件中的TBUF段(segment)密切相关。  RESOURCETBUFr_default_ument_name{buf=;}这个segment决定了application关联的文件名。这里的文件名连同路径就作为参数传递给了OpenFileL

4、()函数。这就使得application在启动的时候能够调用缺省的file,如果这个segment是空的,那么缺省的ument的名字和application的basename相同。这里需要注意的是series60只允许存在一个缺省的file.这个函数的返回值是CFileStore*,这是返回给applicationframeep;aFilename)和fileserversession参数(RFsaFs)应当是由applicationframeentL()  这个函数是由applicationframeentfile.「注?」  这个函数

5、是不是在资源文件没有文件名的情况下调用的?如果是这样,那么这个函数应当在OpenFileL()  之前被调用?  「解释」  我在Document函数里面重载了函数NeentL()和OpenFileL(),并分别加上了断点跟踪调试。发现:(#)如果在资源文件中没有文件名的话,那么这两个函数都不执行。  (#)如果在资源文件存在文件名的话,那么首先执行的是OpenFileL()函数,但是这个时候的aOpen参数值是0,表明文件不存在或者文件没有打开。那么接下来调用NeentL(),这个函数负责创建一个新的umentfile.接下来会调用um

6、ent类的StoreL()函数。  (#)在晚上上述的步骤之后,再重新运行这个app,那么启动的时候会调用OpenFileL()函数,这个时候aOpen参数值是1,表明文件存在,那么接下来就调用ReStoreL()函数对文件进行读写。  「对相关file的管理」  ument类提供了两个函数对文件的mode访问和修改。AppFileMode()和SetAppFileMode()。  「对相关file的访问存取」  ument类提供了如下函数对file进行访问:SaveL();StoreL();RestoreL();ExternalizeL

7、();PrintL();其中SaveL()会在app退出的时候被调用,用于保存app相关的数据到file中去。  SaveL()>StoreL();而RestoreL()是在app启动的时候调用的,负责把文件的信息保存在ument相关的model(engine)中去。  「具体的UI/engine的结构以后在仔细的研究一下:-)」——感谢阅读这篇文章,..,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。