按钮是简单的控件,它直接继承GRAPHIC_CTRL父类就能实现。当执行Create()方法时,先将字符串打印在区域中间,后画出一个矩形;Destroy()方法是空操作,不需要实现;执行Active()方法时,将字符串和矩形区域反白显示“上一页”;Inactive()方法同Create()方法一样,打印字符串和绘制矩形;RespBtn()方法中,它响应“确定”按键的具体动作,针对上/下/左/右方向按键它向调用者(如窗口)返回切换控件的消息;扩展的Enter()方法实现不同按键的“确定”动作响应,从而实现多态技术。

图2按键类的设计

4下拉菜单

Create()方法创建的下拉选择框如右图,

除绘制矩形框和框内字符串外,还需要打印框外的文本(定义为STATIC_TEXT),因而在类的属性中需要添加STATIC_TEXT的指针。Active()方法表现的效果是“MU识别 MAC”,和按钮激活的动作相似;Inactive()方法与Create()方法相同,Refresh()方法与Create()方法也相同。

在响应按键消息时就有区别了。如果“确定”键已经被按下,那么控件将呈现图3左边的选择项,这时需要计算是否有空间向下绘制选择项(可能会超过LCD的下端),如果没有空间将向上绘制选择项。“上/下按键”可以操作选择项,图3右显示了“下按键”操作的结果,因此也需要一个记录上下键位置的数据。再次按下“确定”键完成选择操作“MU识别 APPID”,如,而“取消”键随时可以退出操作过程。

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