OpenEdv-开源电子网

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

emwin无法接收到WM_KEY消息

[复制链接]

6

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2019-5-12
在线时间
61 小时
发表于 2019-9-2 16:53:54 | 显示全部楼层 |阅读模式
1金钱
查了半天,不知道问题出在哪里,希望大佬们指条明路
回调函数内接收到WM_KEY处理的内容如下:
case WM_KEY:
        val+=1;//接收到消息将val+1,发送至串口,但是串口内的值不会改变。
        switch(((WM_KEY_INFO*)(pMsg->Data.p))->Key)
            {
                case GUI_KEY_UP:
                hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
                //WM_SetFocus(hItem);
                WM_InvalidateWindow(hItem);
                //val+=1;
                sprintf(s,"%d",val);
                EDIT_SetText(hItem, s);
                EDIT_SetFont(hItem, GUI_FONT_16B_ASCII);
                EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);  
                break;
                case GUI_KEY_DOWN:
                hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
                //WM_SetFocus(hItem);
                WM_InvalidateWindow(hItem);
                //val-=1;
                sprintf(s,"%d",val);
                EDIT_SetText(hItem, s);
                EDIT_SetFont(hItem, GUI_FONT_16B_ASCII);
                EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);   
                break;
                case GUI_KEY_DELETE:
                hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
                //WM_SetFocus(hItem);
                WM_InvalidateWindow(hItem);//先无效,仅重绘无效部分
                //val=0;
                sprintf(s,"%d",val);
                EDIT_SetText(hItem, s);
                EDIT_SetFont(hItem, GUI_FONT_16B_ASCII);
                EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
                break;
            }
    break;
自己定义的按键消息:
void Taskey()
{
    keyval keydown;
   
    keydown=scankey();
    switch(keydown)
    {
        case key0_down:
            WM_SetFocus(WM_GetDialogItem(WM_GetClientWindow(jubing), gongju) );
            GUI_SendKeyMsg()(GUI_KEY_UP, 1); //灏咾EY0鏄犲皠涓篏UI_KEY_UP;
            
             break;
        case key1_down:
            WM_SetFocus(WM_GetDialogItem(WM_GetClientWindow(jubing), gongju) );
            GUI_SendKeyMsg()(GUI_KEY_DOWN, 1); //灏咾EY1鏄犲皠涓篏UI_KEY_DOWN;
             break;
        case key2_dowm:
            WM_SetFocus(WM_GetDialogItem(WM_GetClientWindow(jubing), gongju) );
            GUI_SendKeyMsg()(GUI_KEY_DELETE, 1); //灏咾EY0鏄犲皠涓篏UI_KEY_UP;
             break;
        default:  keydown=99; break;
    }

}
求大佬们指点一二

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2019-5-12
在线时间
61 小时
 楼主| 发表于 2019-9-2 18:22:25 | 显示全部楼层
发现只有特定的按键才会触发消息WM_KEY,比如GUI_KEY_ENTER,但是那些不是特定的按键,例如上文的GUI_KEY_UP,产生的是什么消息
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 22:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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