硬汉嵌入式论坛

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

[emWin] EMWIN怎样设置控件的背景色为渐变

[复制链接]

8

主题

25

回帖

49

积分

初级会员

积分
49
发表于 9 小时前 | 显示全部楼层 |阅读模式
用自定义回调函数试了好久都没有效果

static void _cbEditGradient(WM_MESSAGE* pMsg) {
    WM_HWIN hItem;
    switch (pMsg->MsgId) {
    case WM_PAINT: {
        // 1. 获取控件区域
        WM_HWIN hEdit = pMsg->hWin;
        GUI_RECT rect;
        WM_GetWindowRectEx(hEdit, &rect);

        // 2. 绘制渐变背景
        GUI_DrawGradientH(rect.x0, rect.y0, rect.x1, rect.y1,
            GRADIENT_START, GRADIENT_END);

        // 3. 调用默认绘制函数(显示文本和边框)
        MULTIEDIT_Callback(pMsg);
        break;
    }
    default:
        MULTIEDIT_Callback(pMsg);
    }
}
回复

使用道具 举报

8

主题

25

回帖

49

积分

初级会员

积分
49
 楼主| 发表于 8 小时前 | 显示全部楼层
每次一调用MULTIEDIT_Callback(pMsg);绘制的渐变背景就会被覆盖。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 7 小时前 | 显示全部楼层
WM_PAINT里面的
        MULTIEDIT_Callback(pMsg);

注释掉
回复

使用道具 举报

8

主题

25

回帖

49

积分

初级会员

积分
49
 楼主| 发表于 7 小时前 | 显示全部楼层
eric2013 发表于 2025-4-25 11:20
WM_PAINT里面的
        MULTIEDIT_Callback(pMsg);

注释掉的话,文本和边框就没有了,得自己在WM_PAINT里手动绘制吗
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 18:58 , Processed in 0.230879 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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