硬汉嵌入式论坛

 找回密码
 立即注册
查看: 8626|回复: 13
收起左侧

[emWin] STemwin EDIT控件显示不正确

[复制链接]

1

主题

9

回帖

1

积分

新手上路

积分
1
发表于 2014-8-7 10:10:17 | 显示全部楼层 |阅读模式
static const GUI_WIDGET_CREATE_INFO Frm_password_Create[] = {
  { WINDOW_CreateIndirect, "Frm_password", ID_WINDOW_0, 0, 0, 800, 480, 0, 0x0, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_0, 0, 0, 790, 100, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_1, 0, 100, 790, 50, 0, 0x64, 0 },
  { EDIT_CreateIndirect, "Edit", ID_EDIT_0, 250, 150, 280, 50, 0, 0x08,0},
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_0, 275, 410, 120, 60, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_1, 155, 350, 120, 60, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_2, 275, 350, 120, 60, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_3, 395, 350, 120, 60, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_4, 155, 290, 120, 60, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_5, 275, 290, 120, 60, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_6, 395, 290, 120, 60, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_7, 155, 230, 120, 60, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_8, 275, 230, 120, 60, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_9, 395, 230, 120, 60, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_10, 155, 410, 120, 60, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_11, 395, 410, 120, 60, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_12, 515, 350, 120, 120, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_13, 515, 230, 120, 60, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_14, 515, 290, 120, 60, 0, 0x0, 0 },
};
以上为资源列表,使用GUI_CreateDialogBox创建窗体,默认都是使用了皮肤的

不正常显示图片

不正常显示图片
一旦不使用皮肤就不能显示BUTTON,但在对应位置触摸,该BUTTON是能相应的,求各位大神给小弟释疑!!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107217
QQ
发表于 2014-8-7 17:13:03 | 显示全部楼层
我看下你的初始化,GUI_Init的函数附近都做了什么操作。
回复

使用道具 举报

1

主题

9

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-8-8 13:25:51 | 显示全部楼层

回 eric2013 的帖子

eric2013:我看下你的初始化,GUI_Init的函数附近都做了什么操作。 (2014-08-07 17:13)
       BUTTON_SKINFLEX_PROPS Buttonwin_Props;

    GUI_Init();

    BUTTON_GetSkinFlexProps(&Buttonwin_Props, BUTTON_SKINFLEX_PI_PRESSED);
        BUTTON_SetSkinFlexProps(&Buttonwin_Props, BUTTON_SKINFLEX_PI_FOCUSSED);

       WM_SetCreateFlags(WM_CF_MEMDEV);

    WM_SetDesktopColor(GUI_WHITE);
    //BUTTON_SetReactOnLevel();
    //set skin
    FRAMEWIN_SetDefaultSkin  (FRAMEWIN_SKIN_FLEX);
        PROGBAR_SetDefaultSkin   (PROGBAR_SKIN_FLEX);
    BUTTON_SetDefaultSkin  (BUTTON_DrawSkin);
        SCROLLBAR_SetDefaultSkin (SCROLLBAR_SKIN_FLEX);
        SLIDER_SetDefaultSkin    (SLIDER_SKIN_FLEX);
        HEADER_SetDefaultSkin    (HEADER_SKIN_FLEX);
        GUI_SetTextMode          (GUI_TM_TRANS);

    BUTTON_SetDefaultFont(GUI_FONT_HZKT32);
    TEXT_SetDefaultFont(GUI_FONT_HZKT32);

    GUI_UC_SetEncodeUTF8();  //ê1ÄüUTF-8Ö§3Ö

    CreateWinPassWord();

  while (1)
    {
        WM_DisableMemdev(WM_HBKWIN);
        GUI_Exec();
        WM_EnableMemdev(WM_HBKWIN);
  }
只是设置了一下BUTTON获得焦点后颜色为按下时的颜色,不做这个设置的时候也是这样,只要不设置BUTTON的皮肤就不能显示BUTTON,edit控件在任何情况下都是背景一片黑,把这个文件放到VS2010中模拟运行时没有问题的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107217
QQ
发表于 2014-8-8 13:28:20 | 显示全部楼层
这个:
  while (1)
    {
        WM_DisableMemdev(WM_HBKWIN);
        GUI_Exec();
        WM_EnableMemdev(WM_HBKWIN);
  }


换成:
  while (1)
    {
        GUI_Delay(10);
  }
回复

使用道具 举报

1

主题

9

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-8-8 13:37:33 | 显示全部楼层
还是不行,感觉EDIT控件区域没有刷新,保留了上一个页面的显示内容

edit未刷新

edit未刷新
回复

使用道具 举报

1

主题

9

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-8-8 14:23:29 | 显示全部楼层
去掉  WM_SetCreateFlags(WM_CF_MEMDEV); 这一句EDIT的背景色正常了,单显示内容还是有问题

EDIT文字显示不正确

EDIT文字显示不正确
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107217
QQ
发表于 2014-8-8 17:45:42 | 显示全部楼层

回 taven_song 的帖子

taven_song:去掉  WM_SetCreateFlags(WM_CF_MEMDEV); 这一句EDIT的背景色正常了,单显示内容还是有问题 (2014-08-08 14:23) 
显示另外一个界面的时候,你是不是没有做清除操作,把界面清除下。另外你的这个工程显示游标箭头有问题吗
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
发表于 2014-8-9 11:59:19 | 显示全部楼层
你这种现象,我斗胆猜测一下,貌似和我的问题一样。。。。。。。
http://www.armbbs.cn/forum.php?mod=viewthread&tid=4155
回复

使用道具 举报

1

主题

9

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-8-11 13:59:18 | 显示全部楼层

回 eric2013 的帖子

eric2013:显示另外一个界面的时候,你是不是没有做清除操作,把界面清除下。另外你的这个工程显示游标箭头有问题吗 (2014-08-08 17:45) 
工程显示箭头是黑色的,这个做何解?
回复

使用道具 举报

1

主题

9

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-8-11 14:03:13 | 显示全部楼层

回 天马行空 的帖子

天马行空:你这种现象,我斗胆猜测一下,貌似和我的问题一样。。。。。。。
http://www.armbbs.cn/forum.php?mod=viewthread&tid=4155 (2014-08-09 11:59) 
我用的emWin5.22驱动配置如下:

PortAPI.pfWrite16_A0  = LcdWriteReg;
  PortAPI.pfWrite16_A1  = LcdWriteData;
  PortAPI.pfWriteM16_A1 = LcdWriteDataMultiple;
  PortAPI.pfReadM16_A1  = LcdReadDataMultiple;
  GUIDRV_FlexColor_SetFunc(pDevice, &amportAPI, GUIDRV_FLEXCOLOR_F66709, GUIDRV_FLEXCOLOR_M16C0B16);

static void LcdReadDataMultiple(U16 * pData, int NumItems) {
  //读取的第一个数据为无效数据,舍弃(没有使用config.numdummyreads参数的时候需要这个语句)
    //*pData = ILI9806_RAM;                    
  while (NumItems--) {
        *pData++ = ILI9806_RAM;        
  }
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107217
QQ
发表于 2014-8-11 18:06:48 | 显示全部楼层

回 taven_song 的帖子

taven_song:我用的emWin5.22驱动配置如下:

PortAPI.pfWrite16_A0  = LcdWriteReg;
 &#160ortAPI.pfWrite16_A1  = LcdWriteData;
....... (2014-08-11 14:03) 
真有可能是你配置的问题。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107217
QQ
发表于 2014-8-11 18:07:07 | 显示全部楼层

回 eric2013 的帖子

eric2013:真有可能是你配置的问题。 (2014-08-11 18:06)
另外降低下你的FSMC读写速度。
回复

使用道具 举报

1

主题

9

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-8-12 09:57:32 | 显示全部楼层

回 eric2013 的帖子

eric2013:另外降低下你的FSMC读写速度。
 (2014-08-11 18:07) 
我看EMWIN的自带驱动并不支持我所用的ILI9806,这种情况下是不是我得用GUIDRV_Template.c来自己完成相应的驱动,
GUIDRV_FlexColor_SetFunc(pDevice, &amportAPI, GUIDRV_FLEXCOLOR_F66709, GUIDRV_FLEXCOLOR_M16C0B16);这个又应该如何配置呢?
回复

使用道具 举报

38

主题

136

回帖

40

积分

初级会员

积分
40
发表于 2014-8-12 16:08:04 | 显示全部楼层

回 taven_song 的帖子

taven_song:我看EMWIN的自带驱动并不支持我所用的ILI9806,这种情况下是不是我得用GUIDRV_Template.c来自己完成相应的驱动,
GUIDRV_FlexColor_SetFunc(pDevice, &amportAPI, GUIDRV_FLEXCOLOR_F66709, GUIDRV_FLEXCOLOR_M16C0B16);这个又应该如何配置呢?
 (2014-08-12 09:57) 
都差不多吧,你多试试。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-21 17:39 , Processed in 0.207947 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表