硬汉嵌入式论坛

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

[emWin] 创建两个WM_CreateWindowAsChild , 子窗口有背景色如何清除

[复制链接]

5

主题

24

回帖

39

积分

新手上路

积分
39
发表于 2016-9-29 14:23:29 | 显示全部楼层 |阅读模式
menu_para.hWinIndex = WM_CreateWindowAsChild(
        0,
        0,
        480,
        272,
        WM_HBKWIN, WM_CF_SHOW | WM_CF_MEMDEV, _cbWindow, 5);

    WM_CreateWindowAsChild(0,
        100,
        480,
        100,
        menu_para.hWinIndex,
        WM_CF_SHOW | WM_CF_MEMDEV | WM_CF_MOTION_X,
        _cbWindow1,
        0
        );


static void _cbWindow(WM_MESSAGE * pMsg) {
    GUI_MEMDEV_Handle   hMemOld;
    static     WM_HTIMER hTimerTime;
    static     unsigned char ss;
    WM_HWIN             hWin;
    int        xSize, xStart;
    int        ySize, yStart;
    hWin = pMsg->hWin;
    switch (pMsg->MsgId) {
    case WM_DELETE:
   
        break;
    case WM_TOUCH:

        break;
    case WM_MOVE:

        break;
    case WM_TIMER:
   
        break;
    case WM_MOTION:

        break;
    case WM_CREATE:
   
        break;   
    case WM_PAINT:

        GUI_SetColor(GUI_RED);
        GUI_FillRect(0, 0, menu_para.xSizeWin, menu_para.ySizeWin);
        break;
    }
}


static void _cbWindow1(WM_MESSAGE * pMsg) {
    GUI_MEMDEV_Handle   hMemOld;
    static     WM_HTIMER hTimerTime;
    static     unsigned char ss, tt=0;
    WM_HWIN             hWin;
    int        xSize, xStart;
    int        ySize, yStart;
    unsigned char i;
    hWin = pMsg->hWin;
    switch (pMsg->MsgId) {
    case WM_CREATE:   
        break;
    case WM_DELETE:   
        break;
    case WM_TOUCH:

        break;
    case WM_MOVE:

        break;
    case WM_TIMER:
   
        break;
    case WM_MOTION:

        break;   
   
    case WM_PAINT:               
        GUI_Clear();
        GUI_DispStringAt("SDDFSDF", 10, 10);
        break;
    } QQ截图20160929142350.png
}

在父窗口背景为红色, 子窗口想建一下背景色为透明的, 在上面贴按键, 没想到没有办法创建透时的背景色,请帮忙看看哪里有问题。
回复

使用道具 举报

5

主题

24

回帖

39

积分

新手上路

积分
39
 楼主| 发表于 2016-9-29 14:59:23 | 显示全部楼层
加上WM_SetHasTrans函数后就可以了,不知对不对
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115723
QQ
发表于 2016-9-30 00:27:15 | 显示全部楼层
子窗口的WM_PAINT消息里面调用alpha设置函数

GUI_SetAlpha(0x80);
GUI_SetColor(GUI_WHITE);
GUI_Clear();
GUI_DispStringAt("SDDFSDF", 10, 10);
GUI_SetAlpha(0);

试试看
回复

使用道具 举报

5

主题

24

回帖

39

积分

新手上路

积分
39
 楼主| 发表于 2016-9-30 09:51:32 | 显示全部楼层
谢谢,测试过了,不行!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115723
QQ
发表于 2016-9-30 12:13:49 | 显示全部楼层

回 jd9945 的帖子

jd9945:谢谢,测试过了,不行! (2016-09-30 09:51) 
把你完整的测试代码发出来下,我给你测试个。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-14 13:24 , Processed in 0.271916 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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