硬汉嵌入式论坛

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

[emWin] 关于GUI_EndDialog函数

[复制链接]

36

主题

142

回帖

250

积分

高级会员

积分
250
发表于 2019-8-24 15:23:49 | 显示全部楼层 |阅读模式
我有两个页面,当我要进入第二页面时,我是先把第一个页面删除掉用GUI_EndDialog函数,然后进入第二个页面,我第二个页面有些控件是透明的 ,背景可以看见第一页面的的东西,这是什么原因呢 我已经把第一个页面删除掉了啊
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-8-24 15:25:30 | 显示全部楼层
第一个页面的父窗口没有做重绘
回复

使用道具 举报

36

主题

142

回帖

250

积分

高级会员

积分
250
 楼主| 发表于 2019-8-24 15:57:36 | 显示全部楼层
eric2013 发表于 2019-8-24 15:25
第一个页面的父窗口没有做重绘

第一个页面都删掉了  还需要重绘什么呢? 硬汉能说清楚点吗?还有使用GUI_EndDialog函数  是不是就自动释放了删掉也免得内存了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-8-24 16:48:33 | 显示全部楼层
老虎的菜 发表于 2019-8-24 15:57
第一个页面都删掉了  还需要重绘什么呢? 硬汉能说清楚点吗?还有使用GUI_EndDialog函数  是不是就自动释 ...

1、你创建的第一个页面,应该是把桌面窗口做父窗口了,你的桌面窗口要做重绘,
简单些,在GUI_Init函数后调用WM_SetDesktopColor(),此函数可以自动重绘桌面窗口

2、对会释放对话框及其所带的子控件。除了Graph需要单独删除。
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
发表于 2019-8-27 15:47:00 | 显示全部楼层
eric2013 发表于 2019-8-24 16:48
1、你创建的第一个页面,应该是把桌面窗口做父窗口了,你的桌面窗口要做重绘,
简单些,在GUI_Init函数 ...

感谢解答。之前有些项目都是直接上dialog,没有创建,也没有操作桌面窗口
Releasing your creativity
回复

使用道具 举报

36

主题

142

回帖

250

积分

高级会员

积分
250
 楼主| 发表于 2019-9-10 17:51:12 | 显示全部楼层
eric2013 发表于 2019-8-24 16:48
1、你创建的第一个页面,应该是把桌面窗口做父窗口了,你的桌面窗口要做重绘,
简单些,在GUI_Init函数 ...

   GUI_Init();
    WM_SetDesktopColor(GUI_BLACK);
    __def_set();

    GUI_SetBkColor(GUI_BLACK);
    GUI_Clear();
    //显示gif图片由暗到亮到暗在到亮
    GUI_GIF_GetInfo(_acstargif, sizeof(_acstargif), &GifInfo);
    for(j = 0; j < 27; j++)
    {
        if (i < GifInfo.NumImages) {
            GUI_GIF_GetImageInfo(_acstargif, sizeof(_acstargif), &ImageInfo, i);
            GUI_GIF_DrawSub(_acstargif,
                sizeof(_acstargif),
                0,
                0,
                i++);
            /* 设置每个GIF子图像的时间间隔。*/
            GUI_Delay(ImageInfo.Delay *10);
        }
        else
        {
            i = 0;
        }
        j++;
    }
    /* 绘制桌面窗口的背景图片 */
    hMempic = GUI_MEMDEV_CreateFixed(0,
                 0,
                 LCD_GetXSize(),
                 LCD_GetYSize(),
                 GUI_MEMDEV_HASTRANS,
                 GUI_MEMDEV_APILIST_16,
                 GUICC_M565);
    //显示启动页面
    GUI_MEMDEV_Select(hMempic);
    GUI_JPEG_Draw(_acstarjpg, sizeof(_acstarjpg), 0, 0);
    GUI_MEMDEV_Select(0);
    GUI_MEMDEV_WriteAt(hMempic,0,0);
    aw_mdelay(2000);
    WM_SetDesktopColor(GUI_BLACK);
    //显示背景页面
    GUI_MEMDEV_Select(hMempic);
    GUI_JPEG_Draw(_acbackground, sizeof(_acbackground), 0, 0);
    GUI_MEMDEV_Select(0);

    /* 创建输入机车号回调函数 */
    _hEnterTrainMessage = GUI_CreateDialogBox(_aDialogCreateEnterTrainMessage, GUI_COUNTOF(_aDialogCreateEnterTrainMessage),
                _cbEnterMSG, WM_HBKWIN, 0, 0);
硬汉我发现我创建对话框之后  因为我有部分是透明的能看见jpg图片,用了你说的办法啊 也不行
回复

使用道具 举报

36

主题

142

回帖

250

积分

高级会员

积分
250
 楼主| 发表于 2019-9-11 09:21:15 | 显示全部楼层
eric2013 发表于 2019-8-24 16:48
1、你创建的第一个页面,应该是把桌面窗口做父窗口了,你的桌面窗口要做重绘,
简单些,在GUI_Init函数 ...

我发这个问题是在我创建小键盘有这个问题。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-9-11 09:43:02 | 显示全部楼层
老虎的菜 发表于 2019-9-10 17:51
GUI_Init();
    WM_SetDesktopColor(GUI_BLACK);
    __def_set();

先清除下桌面窗口再创建
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-18 04:57 , Processed in 0.263038 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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