软键盘产品界面显示的通用程序设计
{0,0,50,110,60,20,5501},
{0,1,150,110,60,20,5502},
……
{0,16,230,160,35,40,5517}
系统的21个静态文本框分别设置为
{29,17,10,15,50,30,5601},
{29,35,10,40,50,30,5619},
……
{29,38,10,15,50,30,5622},
偏移值指定的内容是需要显示的字符串,如图3所示。
Controls[X][2]:控件距所处窗处左边界的距离。
Controls[X][3]:控件距所处窗体右边界的距离。
Controls[X][4]:控件的宽度。
Controls[X][5]:控件的高度。
Controls[X][6]:控件的标识号码,为了系统调用方便而取的编号。
图4 界面控件链
(2)状态控件链
控件链(static int StateControlList[53][6])是一个动态的单向链表结构。在应用程序初始化阶段,根据对pda_init.h文件中定义的界面控件静态数组的遍历动态生成。当程序进入某个界面时,只要循环显示该链表中的控件即可。
Static int StateControlList[53][6]数组的具体定义格式如下:
Y=0 Y=1 Y=2 Y=3 Y=4 Y=5 StateControlList[X][Y] 控件1 控件2 控件3 控件4 控件5 控件6 StateControlList[1][6] 46 47 48 49 0 NU其中“控件1”、“控件2”……表示当前状态的第一、第二等控件。数据“46”表示控件数组的第47个控件,与Controls[46][Y]数组中的内容相对应。“0”是控件结束标志,“NULL”表示没有数据。
为了处理方面,在程序初始化的过程中,假设这个静态数组生成了一个单向链表数组,PDAStateControlsList[53]。具体格式如图4所示。
该链表的每个节点是一个pdacontrolslist型常量,具体结构如下:
struct pdacontrolslist //以下的“X”为控件数组的编号
{
int propertyvalue; //控件属性值,大小等于Controls[X][0]
int default_flag; //缺省偏移值,大小等于Controls[X][1]
int x; //控件距窗体左边界位置,大小等于Controls[X][2]
int y; //控件距离窗体上边界位置,大小等于Controls[X][3]
in w; //控件宽度,
《软键盘产品界面显示的通用程序设计(第2页)》