您现在的位置: 中国IT实验室 >> 移动设备开发 >> PLAM >> 文章正文
PALM开发教程-第四章 窗体的编程(上)

ChinaITLab 收集整理  2005-3-6  保存本文  推荐给好友  QQ上看本站  收藏本站



  在本章中,我将通过为上一章的Contacts程序添加一个About对话框,继续向读者展示Palm OS简单有效的程序风格。你将学会如何创建含有位图、文本和按钮的窗体。你可在Contacts程序中加入菜单和代码使你可以访问About对话框并重新回到Contacts主窗体。
  
  在此过程中,我们将先了解应用程序的基本设置,将为Contacts程序创建一个大的和一个小的应用程序图标。
  
  程序设置
  我们在这部分中将改变一些对整个程序都有影响的设置。同时还将为Contacts创建图标。
  
  首先,为你的程序做一个备份:
  1. 打开Windows文件浏览器;
  2. 找到Contacts文件夹;
  3. 复制并粘贴Contacts;
  4. 命名新文件夹为Contacts CH.3。这就是你的备份文件夹。
  
  创建大小应用程序图标
  先查看一下资源构造器的工程设置(Project Settings)。
  
  注意:
  Code Warrior6所带的构造器版本有一个bug——不允许创建和编辑多位(multibit)图标。我们找到了一个解决的办法,在本书附带的CD里面找到文件icon.txt,里面写有如何解决此问题的步骤。
  1. 运行资源构造器,打开Contacts.rsrc;
  
  2.在Contacts.rsrc窗口的底部找到工程设置图标。如果在窗口的底部只有一个指向右方箭头,单击则工程设置就会弹出。在工程设置中一般要改变的有:应用程序图标的名字、版本字符串和应用程序图标。在上一章节中你已经改变了应用程序图标的名称。表4-1列出了所有设置极其功能:
  
  名称 描述
  Generate App Resources 为应用程序产生版本和图标名称的资源,我建议你大多情况下选中次复选框。
  
  Application Icon Name 应用程序的名称
  
  Version String 应用程序的版本号。当对你的应用程序做出有意义修改后,你应该提高版本号表示不同版本。
  
  Application Icon 定义了黑白的程序大图标,这是为Palm OS 2.0和更早版本准备的,在这里不用。
  
  Auto Generate Header File 资源构造器自动生成头文件。选中。
  
  Include Details in Header 资源构造器向头文件中添加
  内容。选中。
  
  Keep Ids in Sync 使资源构造器在控件ID改变时自动更改ID。如果你在程序中不大改变ID,你可以不选;但在一般情况下,选中会更好。
  
  表4-1:资源构造器中工程设置的选项。
  3. 创建应用程序大图标。从资源列表中选择Multibit Icon并按CTRL-K。一定要保证资源ID为1000。还要注意如果按下了应用程序图标属性边上的创建(Create)按钮,那将生成标准图标而不是多位图标。虽然这样也能产生大图标,但不够理想。
  
  4.双击新图标,弹出一个编辑窗口,你现在就可以在里面画图了。通过选择编辑窗口右端的两个图标,确定颜色为黑白(black and white)还是2位的灰度级。编辑窗口内的编辑控件和Windows下的画图(Paint)及其它作图程序都很相似。当完成后,按窗口顶部右端的X即可关闭窗口。
  
  5. 接下来创建一个应用程序小图标。它只能在Palm OS 3.0或更高版本显示。打开Contactas.rsrc窗口,在Resource Type 和Name面板上选择Multibit Icons;
  
  6. 按下CTRL-K创建一个新图标;
  
  7. 点击ID,将其改为1001,这一步十分重要;
  
  8. 点击新图标。弹出图标编辑窗口,由于Palm OS只显示上部9象素和最左端的15象素,在设计时要注意。
  
  CodeWarrior集成开发环境中的工程设置
  这部分所讲的是如何在使用应用程序的设置:
  1. 行CodeWarrior集成开发环境,打开Contacts工程;
  2. 选择Edit|Stater Settings。程序设置还叫Stater Settings的原因是自从我们建立Starter工程后还没有将它改名。在Stater Settings会发现大量的设置选项,你千万不要把它们搞混;
  3. Stater Setting 对话栏的左边是设置结构树。选择Target子树下的Target Setting,将Target Name中的名字由Starter改为Contacts;保存,现在CodeWarrior集成开发环境将会调用工程Contacts;
  4. 在Target子树下选中68K Target,将文件名从Starter.tmp改为Contacts.tmp;
  5. Linker子树下选中PalmRez Post Linker。将Mac Resource Files 设置由Starter.tmp改为Contacts.tmp;将Output Files设置由Starter.prc改为Contacts.prc,将Database Name设置由空白添加Contacts-PPGU;
  
  注意: 如前所述,在Palm设备中所有东西都是以数据库的形式保存的,应用程序也不例外。每个数据库都必须有唯一的名称,否则就会出现问题。Contacts-PPGU就是和它的唯一原始(creator)ID相关联的文件名,这样命名可以保证唯一性。有关更多原始ID的内容,请参看下一章。
  
  在Contact Settings子树下还有很多其他的设置属性,但是这时候还没必要去设置它们。如果你感兴趣的话,可以参考CodeWarrior集成开发环境指南(Guide)的有关内容。
  
  多窗体界面
  在这部分里我们将再为Contacts程序添加一个窗体:About窗体。我们也将修改Contacts.c中的代码使窗体之间可相互切换。
  
  Contacts.rsrc文件中内容的添加
  我们将为资源文件添加一个About窗体:
  1. 打开资源构造器,打开文件Contacts.rsrc;
  2. 建About窗体。从资源文件列表中选择Forms并按下CTRL-K;
  3. 命名窗体。单击名字Untitled改为About;
  4. 击打开About窗体;
  5. 找到Form对话面板左边的窗体属性。表4-2列出了窗体的各个属性极其用途;
  6. 修改窗体属性。复选Save Behind,写入About Contacts。
  
  Left Origin 窗体的左侧位置的象素数,整个屏幕为160象素。
  
  Top Origin 窗体的顶部位置的象素数,整个屏幕从上到下为160象素。
  
  Width 窗体的宽度,窗体不一定占满整个屏幕。
  
  Height 窗体的高度。
  Usable 决定窗体是否可见,如果对象没有标识为Usable,则它是不可见的。窗体一般情况下标识为Usable。
  Modal 如果窗体为工作窗体且选取Modal,则在窗体外的笔击事件不起任何作用。Modal窗体的名字在窗体顶部的中央。Modal窗体不会被诸如警告之类的系统对话框中断,所以使用时要慎重。
  
  Save Behind 如果选中,窗体关闭后,对窗体操作前的屏幕上窗体后的内容将被保存。
  
  Form ID 窗体的ID号,ID唯一标识窗体。
  
  Help ID 如果窗体为Modal,可填入代表帮助信息资源文件的ID字符串,在窗体的右上角会出现一个“i”图标。如果按下,则帮助信息就会被调出。在Date Book应用程序中的Details窗体有一个这样的例子可供参考。
  
  Menu Bar ID 窗体菜单栏的ID号,在最后一章节中,我们将利用这一属性添加一个菜单拦。
  
  Default Button ID 如果提供了此ID号,当用户切换的其它应用程序时,Palm OS在退出前会自动按下此按钮。这对Modal窗体来说尤其方便,经常使用的缺省按钮为Cancel。
  Form Title 如果为窗体提供了标题,Palm OS会创建写有你设定标题的一个标题栏。
  
  添加位图
  为About窗体添加一个位图,步骤如下:
  1. 选择Resource Type and Name列表下的Bitmaps;
  2. 按CTRL-K创建新位图;
  3. 在构造器中,选择Options | Set Image Size。可让你调整位图的大小;
  4. 调整位图大小为42x42;
  5. 绘制位图。我做的图如图4-3所示。用构造器的编辑器做出如此大的图是很困难的,我是先使用了画笔(Paint)绘好后然剪切过来的;
  6. 绘完后。单击右上角的X关闭位图编辑器;
  7. 将位图添加到Contacts窗体。选中Window | Catalog打开Catalog窗口。从其中拖动一位图到About窗体;
  8. 改变位图的属性。位图的属性意义十分直观。请参考表4-3;
  9. 将Bitmap Resource ID置为前面部分创建的位图的资源ID号。它的ID号应为1000。此时,你应在位图出现的一般位置看到自己的位图;
  10. 设定位图在窗体中的Left Origin和Top Origin。置位图左侧位置为59(让它处于窗体中间)顶部位置为20(让它在标题栏下)。
  
  Object ID 在窗体中标识位图唯一的ID号。此号不能和应用程序中其它任何的ID号相同。
  
  Object Identifier 位图的名称。
  
  Left Origin 位图左边位置的象素数,全屏幕左右长度为160象素。
  
  Top Origin 位图顶部位置的象素数,全屏幕上下长度为160象素。
  
  Bitmap Resource ID 决定位图的资源文件的ID号。
  
  Usable 决定位图的可见与否。只有当标识为Usable时,位图才可见。
  
  添加标签
  现在创建一个包含Contacts信息的标签。你可以从Catalog窗口把一个标签拖到窗体上。表4-4列出了标签对象的属性。
  
  Object Identifier 标签名。构造器在Contacts_res.h文件中创建的变量就来源于此名。
  
  Label ID Palm OS用来识别该对象的唯一ID号。
  
  Left Origin 标签左边位置的象素数。全屏幕左右长度为160象素。标签的长度由它包含的文字数决定。
  
  Top Origin 标签顶端位置的象素数。全屏幕上下长度为160象素。标签包含文字的行数和字体的大小将决定标签的高度。
  
  Usable 决定标签是否在窗体上可见。如果未选中的话,标签为不可见。当你想不改变窗体而使控件可见或不可见时,就要用到此设置。
  
  Font 标签内文字字体的大小。你可以通过Windows Key
  
  Caps 实用工具查找你所需字体。
  
  Text 标签内显示的




 相关文章  热门文章
Palm Powered设备上的增强型音频
编写Palm J2ME红外线“聊天”程序
PALM开发教程-…
PALM开发教程-…
PALM开发教程-…
PALM开发教程-…
PALM开发教程-…
Palm OS上发送和&…
Palm OS上常用编&…
Palm OS上如何利&…

 文章评论


认证培训
热门专题       more
相关下载
论坛新帖
博 客