硬汉嵌入式论坛

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

[emWin] 怎么改颜色

[复制链接]

10

主题

28

回帖

155

积分

初级会员

积分
155
发表于 2018-7-26 10:28:59 | 显示全部楼层 |阅读模式
case WM_NOTIFY_PARENT:
                        Id    = WM_GetId(pMsg->hWinSrc);
                        NCode = pMsg->Data.v;
                        switch(Id)
                                {
                                        case ID_BUTTON_0:
                                                switch(NCode)
                                                {
                                                        case WM_NOTIFICATION_CLICKED:
                                                                BUTTON_SetBkColor(hItem,ID_BUTTON_0,GUI_YELLOW);
                                                                break;
                                                       
                                                        case WM_NOTIFICATION_RELEASED:
                                                                //        LED1_Toggle;                //LED1·′×a
                                                        //òÔÏÂÎaμã»÷¿aê¼2aêÔ½øDDμÄí¨DÅ2ù×÷
                                                        LED0_Toggle;
                                                       
                                                                break;
                                                }
                                        break;
                                        case ID_BUTTON_1:
                                                switch(NCode)
                                                {
                                                        case WM_NOTIFICATION_CLICKED:
                                                                break;
                                                        case WM_NOTIFICATION_RELEASED:
                                                                //LED1_Toggle;                //LED1·′×a
                                                                //òÔÏÂÎaμã»÷í£Ö12aêÔ½øDDμÄí¨DÅ2ù×÷
                                                               
                                                       
                                                       
                                                                break;
                                                }
                                                break;       
                        }
                        break;       
                        default:
                        WM_DefaultProc(pMsg);
                        break;
                        /*-------------------ADDED-----------------*/
        }
//我已经用BUTTON_SetDefaultSkinClassic();改成旧版本

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2018-7-26 11:06:59 | 显示全部楼层
函数BUTTON_SetDefaultSkinClassic();要在GUI_Init函数后就调用。
回复

使用道具 举报

10

主题

28

回帖

155

积分

初级会员

积分
155
 楼主| 发表于 2018-7-26 11:23:03 | 显示全部楼层
调用了,我正在学习你的例子。我试下搞个回调函数
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2018-7-26 11:25:56 | 显示全部楼层
wao 发表于 2018-7-26 11:23
调用了,我正在学习你的例子。我试下搞个回调函数

函数
BUTTON_SetBkColor(hItem,ID_BUTTON_0,GUI_YELLOW);

里面的句柄hItem要重新获取,估计你又搞了个局部变量。
回复

使用道具 举报

10

主题

28

回帖

155

积分

初级会员

积分
155
 楼主| 发表于 2018-7-26 14:48:11 | 显示全部楼层
#define ID_BUTTON_0         (GUI_ID_USER + 0x7C)
#define ID_BUTTON_1         (GUI_ID_USER + 0x7D)
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] =
{        { BUTTON_CreateIndirect, "Button", ID_BUTTON_0, 830, 510, 80, 50, 0, 0x0, 0},
        { BUTTON_CreateIndirect, "Button", ID_BUTTON_1, 920, 510, 80, 50, 0, 0x0, 0},
}
static void _cbDialog(WM_MESSAGE * pMsg)
{
        WM_HWIN hItem;
                int NCode;
        int Id;
        switch (pMsg->MsgId)
        {

                case WM_PAINT:
              hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
              BUTTON_SetFont(hItem,&GUI_FontHZ12);
              BUTTON_SetText(hItem,"¿aê¼2aêÔ");

                        hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1);
                      WM_SetHasTrans(hItem);
                     WM_SetCallback(hItem,_cbButton1);
        break;
        case WM_NOTIFY_PARENT:
                        Id    = WM_GetId(pMsg->hWinSrc);
                        NCode = pMsg->Data.v;
                        switch(Id)
                                {
                                        case ID_BUTTON_0:
                                                switch(NCode)
                                                {
                                                        case WM_NOTIFICATION_CLICKED:
                                                                BUTTON_SetBkColor(hItem,ID_BUTTON_0,GUI_YELLOW);
                                                                       
                                                                break;
                                                        case WM_NOTIFICATION_RELEASED:
                                                                        LED1_Toggle;                /
                                                       
                                                        LED0_Toggle;
                                                       
                                                                break;
                                                }
                                        break;
                                        case ID_BUTTON_1:
                                                switch(NCode)
                                                {
                                                        case WM_NOTIFICATION_CLICKED:
                                                                break;
                                                        case WM_NOTIFICATION_RELEASED:
                                                                //LED1_Toggle;               
                                                               
                                                       
                                                       
                                                                break;
                                                }
                                                break;       
                        }
                        break;       
                        default:
                        WM_DefaultProc(pMsg);
                        break;
                        /*-------------------ADDED-----------------*/
        }
}
static void _cbButton1(WM_MESSAGE *pMsg)//à¶é«
{
       
        GUI_RECT Rect;
        hWin=pMsg->hWin;
        switch(pMsg->MsgId)
        {
                case WM_PAINT:
                        WM_GetInsideRect(&Rect);
                  GUI_SetColor(GUI_LIGHTBLUE);
                  GUI_FillRoundedRect(Rect.x0,Rect.y0,Rect.x1,Rect.y1,5);
                  GUI_SetBkColor(GUI_LIGHTBLUE);
                  GUI_SetFont(&GUI_FontHZ12);
                  GUI_DispStringInRect("c",&Rect,GUI_TA_HCENTER|GUI_TA_VCENTER);
                break;
                default:
                        BUTTON_Callback(pMsg);
        }
}
我这里报错是 identifier "_cbButton1" is undefined
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2018-7-27 01:36:43 | 显示全部楼层
QQ截图20180727012744.png
回复

使用道具 举报

10

主题

28

回帖

155

积分

初级会员

积分
155
 楼主| 发表于 2018-7-27 10:29:45 | 显示全部楼层
_cbButton1怎么定义啊
回复

使用道具 举报

10

主题

28

回帖

155

积分

初级会员

积分
155
 楼主| 发表于 2018-7-27 10:33:45 | 显示全部楼层
我知道了,我顺序放反了,结果出来了
回复

使用道具 举报

10

主题

28

回帖

155

积分

初级会员

积分
155
 楼主| 发表于 2018-7-27 21:55:15 | 显示全部楼层
button怎么改边框的颜色啊
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2018-7-28 01:30:31 | 显示全部楼层
wao 发表于 2018-7-27 21:55
button怎么改边框的颜色啊

可以学习新版emWin教程的皮肤色章节:
http://www.armbbs.cn/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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