硬汉嵌入式论坛

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

[技术讨论] emwin显示

[复制链接]

2

主题

4

回帖

10

积分

新手上路

积分
10
发表于 7 天前 | 显示全部楼层 |阅读模式
求助求助

  现在遇到的问题是 emwin创建了一个对话框  四个文本控件,重绘了一个矩形 , 是12864的LCD,


static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
        { WINDOW_CreateIndirect, "MenuList", ID_WINDOW_0, 0, 0, 128, 64, 0, 0x0, 0 },
        { TEXT_CreateIndirect, "HeadText1", ID_TEXT_1, 2, 1, 125, 15, 0, 0x0, 0 },
        { TEXT_CreateIndirect, "HeadText2", ID_TEXT_2, 2, 17, 125, 15, 0, 0x0, 0 },
        { TEXT_CreateIndirect, "HeadText3", ID_TEXT_3, 2, 32, 125, 15, 0, 0x0, 0 },
        { TEXT_CreateIndirect, "HeadText4", ID_TEXT_4, 2, 48, 125, 15, 0, 0x0, 0 },
};




static void _cbDialog(WM_MESSAGE * pMsg) {
        const void * pData;
        WM_HWIN      hItem;

        // USER START (Optionally insert additional variables)
        static uint8_t flag = 0;       
        int     NCode;   
        switch (pMsg->MsgId) {
        case WM_PAINT:
                GUI_SetBkColor(GUI_WHITE);
                GUI_SetColor(GUI_BLACK);
                GUI_DrawRect(1, 0, 127, 62);  
               
//                hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1);
//                TEXT_SetTextColor(hItem, GUI_WHITE);
//                TEXT_SetBkColor(hItem, GUI_BLACK);
                break;
        case WM_INIT_DIALOG:
               
                hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1);
                TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);

                hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_2);
                TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
          
                hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_3);
                TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
          
                hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_4);
                TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
                  
                GUI_Exec();
                break;

}


当我设置 TEXT控件的文本颜色为黑色 背景为白色时  没什么问题

当 TEXT控件文本颜色为白色  背景为黑色时  就会有问题
不管是在 初始化里  还是重绘里 都不好使
矩形框的右侧的线好像被覆盖了
8a839576b8a3386c3594e735669d05a.png

就是这样 我修改 文本控件 和矩形框的尺寸  也不管用
有没有大佬知道咋回事




回复

使用道具 举报

2

主题

4

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 7 天前 | 显示全部楼层
我用 VS模拟 好像没出现这种情况
482c2d54cd8711f72861d1e4f54b940.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 7 天前 | 显示全部楼层
发现一个小问题。GUI_Exec不要在这个消息里面绘制,会造成嵌套。

case WM_INIT_DIALOG:
               
                hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1);
                TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);

                hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_2);
                TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
         
                hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_3);
                TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
         
                hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_4);
                TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
                  
                GUI_Exec();
回复

使用道具 举报

2

主题

4

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 7 天前 | 显示全部楼层
eric2013 发表于 2025-8-4 16:00
发现一个小问题。GUI_Exec不要在这个消息里面绘制,会造成嵌套。

case WM_INIT_DIALOG:

好的  
按理说 矩形框 不会被 TEXT 覆盖啊 是屏幕的原因 还是emwin库的原因呢
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 6 天前 | 显示全部楼层
qxyxx 发表于 2025-8-4 16:14
好的  
按理说 矩形框 不会被 TEXT 覆盖啊 是屏幕的原因 还是emwin库的原因呢

控件宽度125有点大,改成60试试

{ TEXT_CreateIndirect, "HeadText1", ID_TEXT_1, 2, 1, 125, 15, 0, 0x0, 0 },
        { TEXT_CreateIndirect, "HeadText2", ID_TEXT_2, 2, 17, 125, 15, 0, 0x0, 0 },
        { TEXT_CreateIndirect, "HeadText3", ID_TEXT_3, 2, 32, 125, 15, 0, 0x0, 0 },
        { TEXT_CreateIndirect, "HeadText4", ID_TEXT_4, 2, 48, 125, 15, 0, 0x0, 0 },
回复

使用道具 举报

7

主题

158

回帖

179

积分

初级会员

积分
179
发表于 6 天前 | 显示全部楼层
12864 就不要跑EMWIN了吧,自绘制也简单,
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-11 20:57 , Processed in 0.043985 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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