硬汉嵌入式论坛

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

[emWin] 透明窗口有残影求助

[复制链接]

12

主题

104

回帖

140

积分

初级会员

积分
140
发表于 2018-9-4 17:36:45 | 显示全部楼层 |阅读模式
#include "GUI_MAIN.h"

#define  ID_WINDOW_0        (GUI_ID_USER + 0x00)   //工作区ID
#define  ID_WINDOW_1        (GUI_ID_USER + 0x01)
#define  ID_TEXT_0        (GUI_ID_USER + 0x02) //主菜单ID
#define  ID_BUTTON_0        (GUI_ID_USER + 0x03)
#define  ID_EDIT_0        (GUI_ID_USER + 0x04)
#define  ID_EDIT_1        (GUI_ID_USER + 0x05)
#define  ID_TEXT_1        (GUI_ID_USER + 0x06)
#define  ID_TEXT_2        (GUI_ID_USER + 0x07)
static const GUI_WIDGET_CREATE_INFO _aDialogAdd[] = {
  { WINDOW_CreateIndirect, "Window", ID_WINDOW_0, 0, 0, 800, 450, 0, 0x0, 0 },
  { TEXT_CreateIndirect, "X",      ID_TEXT_0,        750,53, 30,30, 0, 0x0, 0 },
  { TEXT_CreateIndirect, "Abc:",   ID_TEXT_1,        250,125,100,30, 0, 0x0, 0 },
  { TEXT_CreateIndirect, "QQ:",    ID_TEXT_2,        250,205,100,30, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "NEXT", ID_BUTTON_0, 255,300,250,40, 0, 0x0, 0 },
  { EDIT_CreateIndirect, "123123", ID_EDIT_0,        250,150,260,30, 0, 0x0, 0 },
  { EDIT_CreateIndirect, "123123", ID_EDIT_1,        250,230,260,30, 0, 0x0, 0 },
};


//ID_WINDOW_0回调函数
static void cb_Add1Dlg(WM_MESSAGE *pMsg)
{
        int Id;
        int NCode;
  U8 ReleasedItem;
  static U8 OldItem=0;
  WM_HWIN hItem;
        switch(pMsg->MsgId)
        {
                case WM_PAINT:
          GUI_EnableAlpha(1);
          GUI_SetAlpha(0xA0);                 // Set alpha value for drawing operations  根据透明程度设置数值
          GUI_SetBkColor(GUI_WHITE);   
          GUI_Clear();
          GUI_SetAlpha(0);   
          GUI_EnableAlpha(0);
          GUI_SetColor(GUI_WHITE);
          GUI_AA_FillRoundedRect(220,60,550,360,15);
          GUI_SetPenSize(2);
          GUI_SetColor(0xFF8000);
          GUI_AA_DrawRoundedRect(220,60,550,360,15);
          GUI_SetColor(0XE6E6E6);
          GUI_DrawHLine(120,240,520);
          GUI_DrawHLine(121,240,520);
          GUI_DrawHLine(280,240,520);
          GUI_DrawHLine(281,240,520);
           GUI_SetColor(0X626262);
           GUI_SetFont(&GUI_Font24B_ASCII);
           GUI_DispStringAt("MeterType",250,90);
                        break;
                case WM_TIMER:
                        WM_MoveWindow(pMsg->hWin,20,0);
                        WM_RestartTimer(pMsg->Data.v,1000);
                        break;
                case WM_NOTIFY_PARENT:
                        Id=WM_GetId(pMsg->hWinSrc);
                        NCode=pMsg->Data.v;
                        switch(Id)
                        {
                                 case ID_TEXT_0:
                                          switch(NCode) {
                                          case WM_NOTIFICATION_CLICKED:
                                                          GUI_EndDialog(pMsg->hWin,0);
                                                break;
                                          case WM_NOTIFICATION_RELEASED:
                                                  
                                                                        break;
                                          case WM_NOTIFICATION_VALUE_CHANGED:

                                                break;
                                         }break;
                                 case ID_BUTTON_0:
                                          switch(NCode) {
                                          case WM_NOTIFICATION_CLICKED:

                                                break;
                                          case WM_NOTIFICATION_RELEASED:
                                                 CreateAddFourDlg(WM_GetParent(pMsg->hWin));
                                                                        break;
                                          case WM_NOTIFICATION_VALUE_CHANGED:

                                                break;
                                         }
                                         break;
                                       
                        }
                        break;
                default:
                        WM_DefaultProc(pMsg);
                        break;               
        }
}

/*********************************************************************
*
*       CreateSwipeListDlg
*/
void CreateAddThreeDlg(WM_HWIN hParent)  {
        WM_HWIN hItem;
        WM_HWIN hAddDlg;
        U8 i;
       
        _ButtonRedrawColor        blue1BK_Button  = { 0,0xF0AE01,0xFF8000,0xED5B22 };
       
        hAddDlg = GUI_CreateDialogBox(_aDialogAdd, GUI_COUNTOF(_aDialogAdd),NULL , hParent, 0, 0);
        WM_SetCallback(hAddDlg,cb_Add1Dlg);
        WM_CreateTimer(hAddDlg,0,1000,0);
        hItem=WM_GetDialogItem(hAddDlg,ID_TEXT_0);
        TEXT_SetFont(hItem,&GUI_Font32B_ASCII);
        TEXT_SetTextColor(hItem,GUI_GRAY);

        hItem=WM_GetDialogItem(hAddDlg,ID_BUTTON_0);
        BUTTON_SetText(hItem,"NEXT");
        BUTTON_SetTextColor(hItem,BUTTON_CI_UNPRESSED,GUI_WHITE);
        BUTTON_SetFont(hItem,&GUI_Font20_1);
        Button_RedrawSkin(&blue1BK_Button);

    hItem=WM_GetDialogItem(hAddDlg,ID_EDIT_0);
        //EDIT_SetBkColor( hItem,EDIT_CI_ENABLED,0X3D2C24);
        WIDGET_SetEffect(hItem,&WIDGET_Effect_3D1L);
        EDIT_SetBkColor( hItem,EDIT_CI_ENABLED,GUI_WHITE);
        EDIT_SetTextColor(hItem,EDIT_CI_ENABLED,0XB0A19B);
        EDIT_SetFont(hItem,&GUI_Font20B_1);
        EDIT_SetText(hItem,"123123");
        EDIT_SetTextAlign(hItem,GUI_TA_VCENTER );

        hItem=WM_GetDialogItem(hAddDlg,ID_EDIT_1);
        //EDIT_SetBkColor( hItem,EDIT_CI_ENABLED,0X3D2C24);
        WIDGET_SetEffect(hItem,&WIDGET_Effect_3D1L);
        EDIT_SetBkColor( hItem,EDIT_CI_ENABLED,GUI_WHITE);
        EDIT_SetTextColor(hItem,EDIT_CI_ENABLED,0XB0A19B);
        EDIT_SetFont(hItem,&GUI_Font20B_1);
        EDIT_SetText(hItem,"123123");
        EDIT_SetTextAlign(hItem,GUI_TA_VCENTER );

        hItem=WM_GetDialogItem(hAddDlg,ID_TEXT_1);
        TEXT_SetFont(hItem,&GUI_Font16B_1);
        TEXT_SetTextColor(hItem,0X917D74);

        hItem=WM_GetDialogItem(hAddDlg,ID_TEXT_2);
        TEXT_SetFont(hItem,&GUI_Font16B_1);
        TEXT_SetTextColor(hItem,0X917D74);

}
移动窗口会出现残影,我需要一个透明弹窗,然后里面是个编辑框会触发窗口移动和重绘,但试过很多次都是有残影,加了WM_SetCreateFlags(WM_CF_MEMDEV);这个没用,且背景变灰色了。。 QQ图片20180904173609.png

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2018-9-5 02:18:56 | 显示全部楼层
方便的话,贴一个完整点的测试程序,方便我在模拟器上面测试。
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2018-9-5 08:55:35 | 显示全部楼层
GUI_MAIN.c (5 KB, 下载次数: 17)
代码在这。直接添加到模拟器是有残影呢
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2018-9-5 13:55:21 | 显示全部楼层
eric2013 发表于 2018-9-5 02:18
方便的话,贴一个完整点的测试程序,方便我在模拟器上面测试。

GUI_MAIN.c (5 KB, 下载次数: 16) 源码在这,麻烦硬汉了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2018-9-5 16:07:57 | 显示全部楼层
99.png
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2018-9-5 16:48:52 | 显示全部楼层
本帖最后由 cz123123 于 2018-9-5 17:01 编辑

我清除过这个,,但背景就不透明啦。。我需要透明咋弄呢,开那个 太卡。。不是很爽,                   GUI_EnableAlpha(1);         
          GUI_SetAlpha(0xC0);                 // Set alpha value for drawing operations  根据透明程度设置数值
          GUI_SetBkColor(GUI_WHITE);   
          GUI_Clear();
          GUI_SetAlpha(0);   
          GUI_EnableAlpha(0);
且现在就算开了也不透明。。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2018-9-6 01:29:48 | 显示全部楼层
888.png
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2018-9-6 08:42:37 | 显示全部楼层

恩恩,谢谢还是太卡了。。429创建这个透明弹窗窗口花了3秒。。太久了。。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2018-9-6 14:30:25 | 显示全部楼层
帮你在我们V6上面测试,1秒一次,挺好的
2.gif
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2018-9-6 15:47:55 | 显示全部楼层
eric2013 发表于 2018-9-6 14:30
帮你在我们V6上面测试,1秒一次,挺好的

不是移动,是创建太慢,刷新也慢,就显得卡卡的。1秒我这也可以有
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2018-9-6 16:26:24 | 显示全部楼层
cz123123 发表于 2018-9-6 15:47
不是移动,是创建太慢,刷新也慢,就显得卡卡的。1秒我这也可以有

你说的是这个啊,移植ARGB格式库,效果会好些。
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
 楼主| 发表于 2018-9-7 08:48:09 | 显示全部楼层
eric2013 发表于 2018-9-6 16:26
你说的是这个啊,移植ARGB格式库,效果会好些。

好的。谢谢硬汉
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 06:34 , Processed in 0.503119 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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