Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15482825
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类: C/C++

2007-09-11 16:33:32

修正μC/GUI-v3.90a下2色ListBox显示bug

文章来源:http://gliethttp.cublog.cn[转载请声明出处]

  当LCD屏幕为2色黑白屏时,listbox控件存在一个bug,当选中listbox中的某项内容时,反显正常,
但是当listbox失去焦点时,先前被选中的反显内容,会消失掉,做如下改动可以修正该bug:
//1.向listbox.c添加头文件
#include "LCDConf.h"
//2.修改函数LISTBOX_OwnerDraw()
int LISTBOX_OwnerDraw(const WIDGET_ITEM_DRAW_INFO* pDrawItemInfo) {
    ...
    case WIDGET_ITEM_DRAW: {
        ...
        if (IsDisabled) {
          ColorIndex = 3;
        } else {
          if (ItemIndex == pObj->Sel) {
          //2007-09-11 gliethttp
                    //失去焦点或者获得焦点时绘制
                    //正常显示时ColorIndex = 0
                    //失去焦点时ColorIndex = 1
                    //获得焦点时ColorIndex = 2
                    //修正listbox在2色黑白屏下显示bug

              #if LCD_BITSPERPIXEL == 1
              ColorIndex = (pObj->Widget.State & WIDGET_STATE_FOCUS) ? 2 : 0;
              #else
              ColorIndex = (pObj->Widget.State & WIDGET_STATE_FOCUS) ? 2 : 1;
              #endif
          } else {
            ColorIndex = 0;
          }
        }
        ...
}

阅读(2479) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~