硬汉嵌入式论坛

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

[emWin上位机] 想在硬汉的usb上位机上加一个功能,没能达到预期

[复制链接]

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
发表于 2021-1-26 10:23:06 | 显示全部楼层 |阅读模式
在上面加了一个功能:按一下按键数字加1,发现按下开启数据采集按键的时候数据加1了,但是没有更新到界面,只有按下打开usb设备按键数据才会更新,不知道哪里有问题

上位机正式版加数字.zip

8.78 MB, 下载次数: 29

回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2021-1-26 16:06:45 | 显示全部楼层
顶一下
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
发表于 2021-1-26 17:37:14 | 显示全部楼层
你的下位机用的什么方案,也是RL-USB吗
回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2021-1-27 08:59:45 | 显示全部楼层
本帖最后由 ssssssss 于 2021-1-27 09:34 编辑
eric2013 发表于 2021-1-26 17:37
你的下位机用的什么方案,也是RL-USB吗

我单纯就是想上位机按键 数字加1,在您的案例上修修改改学习一下,实现自己的想法,没达到预期,还没弄下位机呢(鼠标点一下按键,数字加1)
回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2021-1-27 16:51:15 | 显示全部楼层
eric2013 发表于 2021-1-26 17:37
你的下位机用的什么方案,也是RL-USB吗

硬汉大哥能不能帮忙看看,我就加了几行代码,申请了一个变量在++,然后按键按下加1,没达到预期
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
发表于 2021-1-27 16:55:58 | 显示全部楼层
ssssssss 发表于 2021-1-27 16:51
硬汉大哥能不能帮忙看看,我就加了几行代码,申请了一个变量在++,然后按键按下加1,没达到预期

看了,没发现什么问题。
回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2021-1-27 17:17:50 | 显示全部楼层
eric2013 发表于 2021-1-27 16:55
看了,没发现什么问题。

我按开始数据采集按键旁边三位的数据不往上加,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
发表于 2021-1-28 07:48:11 | 显示全部楼层
ssssssss 发表于 2021-1-27 17:17
我按开始数据采集按键旁边三位的数据不往上加,

绘制的位置不合理,这种API要放到WM_PAINT消息里面实现。如果想放这里也是可以的,最好用TEXT文本控件。

当然,如果非要在这里采用这种方式调用,需要你看下V6 emWin教程的第65章。

QQ截图20210128074129.png
回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2021-1-28 08:15:42 | 显示全部楼层
eric2013 发表于 2021-1-28 07:48
绘制的位置不合理,这种API要放到WM_PAINT消息里面实现。如果想放这里也是可以的,最好用TEXT文本控件。
...

我WM_PAINT里面也刷新的这个数据啊,但是点击第二个按钮就是刷新不上去
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
发表于 2021-1-28 09:42:28 | 显示全部楼层
ssssssss 发表于 2021-1-28 08:15
我WM_PAINT里面也刷新的这个数据啊,但是点击第二个按钮就是刷新不上去

先把我说的改了,然后建议你用TEXT控件。
回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2021-1-28 11:21:15 | 显示全部楼层
eric2013 发表于 2021-1-28 09:42
先把我说的改了,然后建议你用TEXT控件。

改了还是不行,好像是需要人工触发wm_paint信号,应该咋处理才对呢

上位机正式版加TXT.zip

8.89 MB, 下载次数: 4

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
发表于 2021-1-28 12:00:29 | 显示全部楼层
ssssssss 发表于 2021-1-28 11:21
改了还是不行,好像是需要人工触发wm_paint信号,应该咋处理才对呢

不要搞你现在的方案了,使用TEXT控件,注意是控件,然后直接就可以在按钮消息里面调用TEXT的API设置数值,你现在实现个这种功能。
回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2021-1-28 13:05:38 | 显示全部楼层
eric2013 发表于 2021-1-28 12:00
不要搞你现在的方案了,使用TEXT控件,注意是控件,然后直接就可以在按钮消息里面调用TEXT的API设置数值 ...

已经用文本控件来搞了呀
资源列表添加text控件{ TEXT_CreateIndirect, "123456",  ID_TEXT_10, 180,60, 780, 20, 0, 0x0, 0 },
然后在wm_paint里面刷新
sprintf(buff1,"%06X",ValueNum);

hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_10);
TEXT_SetTextColor(hItem, GUI_RED);
TEXT_SetText(hItem, buff1);

  1. case WM_PAINT:
  2.         GUI_SetColor(GUI_BLACK);
  3.                 GUI_DrawRect(0,0,799,479);

  4.                 GUI_SetColor(GUI_RED);
  5.                 GUI_AA_DrawRoundedRect(10, 70+8, 790, 255, 6);
  6.                 GUI_SetFont(&GUI_FontHZ_SimSun_16);
  7.         GUI_DispStringAt("发送/接收状态", 30, 70);

  8.                 sprintf(buff1,"%06X",ValueNum);
  9.                                                
  10.     hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_10);
  11.                 TEXT_SetTextColor(hItem, GUI_RED);
  12.                 TEXT_SetText(hItem, buff1);


  13.                 GUI_SetFont(&GUI_Font24B_ASCII);
  14. GUI_DispDecAt(ValueNum,170,30,3);
  15.                 break;
复制代码
按钮哪里ValueNum++;



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
发表于 2021-1-29 08:09:23 | 显示全部楼层
ssssssss 发表于 2021-1-28 13:05
已经用文本控件来搞了呀
资源列表添加text控件{ TEXT_CreateIndirect, "123456",  ID_TEXT_ ...

不要在WM_PAINT里面调用这个
  sprintf(buff1,"%06X",ValueNum);
                                               
    hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_10);
                TEXT_SetTextColor(hItem, GUI_RED);
                TEXT_SetText(hItem, buff1);

请在你的按钮回调里面调用这个。
回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2021-1-29 13:06:48 | 显示全部楼层
eric2013 发表于 2021-1-29 08:09
不要在WM_PAINT里面调用这个
  sprintf(buff1,"%06X",ValueNum);
                                    ...

可以了,这几句话似乎还能顺便触发wm_paint
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 04:33 , Processed in 0.200710 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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