软键盘类的定义如图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

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查