软键盘类的定义如图7所示:

图7软键盘类的定义

7 图形控件的使用

上述设计了4种常用的图形控件,现在讲解调用它们的一般方法。

首先需要为该图形对象申明并开辟内存,如:

static BTN s_stBC91MExit =

{

.stGCtrl =

{

.chID = BC91M_EXIT,

.chItemNum = 1,

.chSelIx = 0,

.nAddrX = CHAR_LEN * 33,

.nAddrY = BTN_CTRL_Y,

.nSizeW = BTN_CTRL_W,

.nSizeH = CHAR_WIDE,

.pp_chBtnStr = &a_strBC91MBtnStr[3],  

},

};

其次需要调用方法初始化该图形对象,如下所示:

gctrl_ConsBtn(&s_stBC91MExit, BC91MBtnEnter);

创建窗口时也会调用控件的创建函数:

gctrl_Create(&s_stBC91MExit, NULL);

当用户按键选中该按钮时,gctrl_Active(&s_stBC91MExit, NULL)会被调用,以便于激活该对象;同样,gctrl_Inactive(&s_stBC91MExit, NULL)用于注销该对象;如果本按钮是激活对象,那么任何用户按键消息将会传递给它,即调用方法gctrl_RespBtn(&s_stBC91MExit,

&uRtn);最后当窗口退出时会调用按钮的销毁方法,gctrl_Destroy(&s_stBC91MExit, NULL)。

7 结束语

本文设计的轻量级嵌入式图形控件已经在某工业控制产品中稳定使用多年,该产品选用TRULY公司320x240像素的LCD。采用面向对象的设计,使软件系统容易开发;简单化的设计使系统异常稳定;另外占用资源很少,这是商业GUI无法比拟的。需要了解LCD硬件连接与驱动以及窗口系统的实现,可以参见姊妹篇论文《一种轻量级嵌入式GUI设计》。

参 考 文 献

[1] Steve McConnell. Code Complete. Second Edition. 金戈等译。电子工业出版社,2006.3