ITPub博客

首页 > Linux操作系统 > Linux操作系统 > PALM开发教程-第六章 控件(转)

PALM开发教程-第六章 控件(转)

原创 Linux操作系统 作者:jcszjswkzhou 时间:2019-02-23 20:33:06 0 删除 编辑
在这一章中,我们将继续研究Contact Detail 程序,让它具有显示并设置日期时间的功能。我们要添加一个窗体来设置时间。这个时间和日期是可选的以供下次联系使用。

为实现此功能,我们将使用新的资源:选择触发器(selector triggers),开关按钮(push buttons),重复按钮(repeating buttons)。连同前面的按钮,它们都是Palm OS的控件。它们具有类似的属性,并且在触发时发出相同的事件。它们都可拥有自己的标签,它们都是被单击触发的。在单击后它们的形状都有所改变,不过有的只是瞬间改变就恢复了而已。

保存你的工程

当在修改工程之前,最好先制作一个它的副本。这样当出现问题时,你就可以拿出的工程的副本重新开始。步骤如下:

1. 打开Windows 资源管理器;
2. 找到工程所在的文件夹;
3. 选中工程,按下CTRL+C拷贝文件夹;
4. 选择想要保存到的文件夹;
5. 按下CTRL+V保存;
6. 将工程重新命名,以便你能清楚记忆。我将其命名为Contacts CH.5。

对Contatcs.rsrc文件内容的添加

这一部分我们为Contact Detail添加日期和时间的控件。我们还将创建一个用来改变时间的窗体。对改变日期,我们将调用Palm OS的标准对话框。

添加日期时间选择触发控件

向Contact Detail窗体添加两个标签和两个选择触发器(selector triggers)。我们将使用选择触发来显示下一次调用此contact的日期和时间。选择触发控件处理事件和按钮很相似,只是外形有很大不同。它被一个点壮矩形所环绕。和按钮相比,这个矩形在宽度和高度上都占有一个象素的额外空间,这一点在放置此控件时要考虑。有关选择触发器(selector triggers)的属性见表6-1。


Object Identifier 构造器用来代表资源头文件ID的常量

Selector Trigger ID 选择触发控件的资源ID;

Left Origin 水平方向上控件的最左端位置;

Top Origin 垂直方向上控件的最顶端位置;

Width 控件的最大宽度。此属性很少使用,因为控件的右
边界会随着标签文本的长度改变而改变;

Height 控件的高度;

Usable 决定次控件是否可见能用。如果没有选中,也可在通过函数调用来实现其可见;

Anchor Left 决定当文本长度改变时,控件的左侧或右侧是否做相应的伸缩;

Font 标签使用的字体;

Label 标签的缺省文本;


以下是添加控件的步骤:
1. 打开资源构造器;

2. 打开文件Contacts.rsrc。它在Src文件夹中;

3. 双击Contacts Detail窗体;

4. 选择Window | Catalog,产生控件模板;

5. 将一个标签拖到窗体上。置标签文本为Next Call Date。将它放在Phone Number 标签底下。设置Left Origin为0、Top Origin为60,文本字体为粗体;

6. 将一个选择触发器(selector triggers)拖到窗体上。设置Object Identifier为Date,Left Origin为81,Top Origin 为60,Width为78。向标签输入10个空格,这样可保证在缺省的情况下,当被finger按下时有充足的空间;

7. 向窗体上再拖一个标签。置标签文本为Next Call Time。将它放在Next Call Date 标签底下。设置Left Origin为12、Top Origin为80,文本字体为粗体;

8. 向窗体上再拖一个选择触发器(selector triggers)。设置Object Identifier为Time,Left Origin为81,Top Origin 为80,Width为78。也向标签输入10个空格。

9. 添加控件后的窗体如图6-1所示。按下右上角的X按钮,关闭窗体。

图6-1:Contact Detail 窗体
创建一个新的设置时间窗体

现在创建一个窗体:

1. 点击资源(resource)中的窗体(Forms)选项,按下CTRL-K创建一个新的窗体;

2. 点击name框并重命名为Enter Time;

3. 双击打开窗体进行编辑;

4. 首先设置窗体属性。复选中属性Modal和Save Behind。我们将此窗体作为对话框的形式出现;此窗体是我们接触到的第一个不是全屏显示的窗体;我们修改其宽度(Width)为156,其高度(Height)为53;

5. 为实现modal边框可见,我们需要在窗体和屏幕边界留出2个象素的宽度。所以宽度设为156,而左初始边界应为2,顶端初始边界应为105,这样就保证了两个象素的余度;

6. 修改窗体的名字(Name)属性为Enter Time。

添加开关按钮(push buttons)

开关按钮(push buttons)在表现为按下的状态时,不同于通常淡的底色和黑的文字,而是黑的底色和淡的文字。我们使用开关按钮(push buttons)显示小时、分钟、和上午/下午(AM/PM)。在放置开关按钮(push buttons)时,我们必须考虑它的边界所占用的一个象素的宽度。开关按钮(push buttons)的属性如表6-2所示:
Object Identifier 资源构造器用来代表资源头文件ID的常量

Push Button ID 开关按钮(push buttons)的资源ID

Left Origin 水平方向上按钮的最左端位置;

Top Origin 垂直方向上按钮的最顶端位置;

Width 按钮的宽度

Height 按钮的高度

Usable 用来定义控件是否可见及可用,如果没有选中,也可在通过函数调用来实现其可见

Group ID 表示当按钮按下时是否突出 显示。如果此数字为0,则按钮当被按下是将在“按下”和“没有按下”两个状态间切换。当此数字不为0时,按钮被按下是保持原来的状态。在每一组中所用的组(Group)ID应是唯一的,因为在后面的代码中将使用到组ID

Font 标签显示文字的字体

Label 标签本身的文字

添加步骤:
1. 将一个开关按钮(push buttons)拖到Enter Time 窗体上;

2. 既然此按钮显示时间,可将Object Identifier设置为Hours。设置属性:Left Origin=5,Top Origin=17,Width为18,Group ID为1。Font属性为Bold,清除标签内的文字;

3. 复制Hours开关按钮(push buttons)。可选中Hours开关按钮(push buttons)后,按下CTRL-D进行复制。修改Object Identifier为MinutesTens。设置属性:Left Origin=34,Top Origin=17,Width为12,因为它只包含一个数字;

4. 复制MinutesTens按钮。可选中MinutesTens按钮后,按下CTRL-D进行复制。修改Object Identifier设置为MinutesOnes。设置属性:Left Origin=50,Top Origin=17;

5. 再拖动一个开关按钮(push buttons)到窗体上。修改Object Identifier设置为AM。设置属性:Left Origin=109,Top Origin=17,Width为20,Group ID为2。设置标签内的文字为AM;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-126907/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-08-29

  • 博文量
    893
  • 访问量
    564382