OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4879|回复: 6

STemWin:为什么EDIT控件的输入值读不出来?

[复制链接]

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2017-5-3
在线时间
13 小时
发表于 2017-5-10 13:55:07 | 显示全部楼层 |阅读模式
1金钱
我新建了一个控件如下图,希望点击Search按钮时,将EDIT控件中输入的字符串(如P001)在分隔线下显示出来,为什么读不出来EDIT控件的输入值啊?
初学STemWin,求各位大神指导。
微信截图_20170510134938.png

我是在该对话框的回调函数中执行该步骤的(黄底色部分),回调函数如下:
static void _cbDialog_query(WM_MESSAGE * pMsg) {
        WM_HWIN hItem;
        int     NCode;
        int     Id;

        switch (pMsg->MsgId) {
        case WM_INIT_DIALOG:

                // Initialization of 'DTC Code'
                hItem = pMsg->hWin;
                FRAMEWIN_SetTitleHeight(hItem, 20);
                FRAMEWIN_SetFont(hItem, GUI_FONT_16B_ASCII);
                FRAMEWIN_AddCloseButton(hItem, FRAMEWIN_BUTTON_RIGHT, 0);         //为框架添加关闭按钮
                FRAMEWIN_SetClientColor(hItem, GUI_WHITE);  //设置背景色为白色

                // Initialization of 'Input DTC Code:'
                hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0);
                TEXT_SetFont(hItem, GUI_FONT_13B_1);
                TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);

                // Initialization of 'Edit'
                hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
                EDIT_SetText(hItem, "");

                break;
        case WM_NOTIFY_PARENT:
                Id = WM_GetId(pMsg->hWinSrc);
                NCode = pMsg->Data.v;
                switch (Id) {
                case ID_EDIT_0: // Notifications sent by 'Edit'
                        switch (NCode) {
                        case WM_NOTIFICATION_CLICKED:

                                break;
                        case WM_NOTIFICATION_RELEASED:

                                break;
                        case WM_NOTIFICATION_VALUE_CHANGED:
                                hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);     //获取edit控件的句柄
                                EDIT_GetText(hItem, DTC_Code, 5);                    //读取edit控件输入值,存入DTC_Code数组中,之前已定义
                                break;
                        }
                        break;
                case ID_BUTTON_0: // Notifications sent by 'Search'
                        switch (NCode) {
                        case WM_NOTIFICATION_CLICKED:
                                break;
                        case WM_NOTIFICATION_RELEASED:
                                break;
                        }
                        break;
                }
                break;
       
        case WM_PAINT:
                //画分割线
                GUI_SetBkColor(GUI_BLACK);
                GUI_ClearRect(0, 25, 320, 28);
                GUI_SetBkColor(GUI_WHITE);
                GUI_SetColor(GUI_BLACK);
                GUI_SetFont(&GUI_Font16B_ASCII);

                GUI_DispStringInRectWrap(DTC_Code, &DTC_RECT, GUI_TA_TOP | GUI_TA_LEFT, GUI_WRAPMODE_WORD);   //将输入的值在分隔线下方显示出来。

        default:
                WM_DefaultProc(pMsg);
                break;
        }
}

最佳答案

查看完整内容[请看2#楼]

不要在case WM_PAINT:中显示 直接在你的第一栏黄色标注下试试 或者在第一个黄色下加个无效化区域 好长时间没看了 有些生疏
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

57

主题

358

帖子

0

精华

高级会员

Rank: 4

积分
981
金钱
981
注册时间
2014-9-29
在线时间
261 小时
发表于 2017-5-10 13:55:08 | 显示全部楼层
不要在case WM_PAINT:中显示
直接在你的第一栏黄色标注下试试
或者在第一个黄色下加个无效化区域
好长时间没看了
有些生疏
回复

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2017-5-3
在线时间
13 小时
 楼主| 发表于 2017-5-10 15:37:26 | 显示全部楼层
都没人解答下么?在线等啊
回复

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2017-5-10 16:06:44 | 显示全部楼层
简单的方法就是用printf打印出来看看是否有数据,这样才好定位你的问题在哪里,是读取问题还是显示问题,这样就一目了然了
回复

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2017-5-3
在线时间
13 小时
 楼主| 发表于 2017-5-10 16:55:04 | 显示全部楼层
显示没有问题,我把显示的内容写成固定值就可以,如下:
GUI_DispStringInRectWrap(“Error”, &DTC_RECT, GUI_TA_TOP | GUI_TA_LEFT, GUI_WRAPMODE_WORD);  

所以可以确定是没有正确读入输入的值。
回复

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2017-5-3
在线时间
13 小时
 楼主| 发表于 2017-5-11 11:45:49 | 显示全部楼层
求助,自己顶!
回复

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2017-5-3
在线时间
13 小时
 楼主| 发表于 2017-5-12 11:22:18 | 显示全部楼层
是的,要增加无效化,已经好了,谢谢。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 08:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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