硬汉嵌入式论坛

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

[emWin] GUI_ID_USER + 14,这些ID是怎么来的?

[复制链接]

8

主题

13

回帖

8

积分

新手上路

积分
8
发表于 2016-5-18 10:17:51 | 显示全部楼层 |阅读模式
/* Dialog resource of numpad */
static const GUI_WIDGET_CREATE_INFO _aDialogNumPad[] = {
/*  Function                 Text      Id                 Px   Py   Dx   Dy */
  { WINDOW_CreateIndirect,   0,        0,                140, 60,  95, 130},
  { BUTTON_CreateIndirect,   "7",      GUI_ID_USER +  7,   5,   5,  25,  20},
  { BUTTON_CreateIndirect,   "8",      GUI_ID_USER +  8,  35,   5,  25,  20},
  { BUTTON_CreateIndirect,   "9",      GUI_ID_USER +  9,  65,   5,  25,  20},
  { BUTTON_CreateIndirect,   "4",      GUI_ID_USER +  4,   5,  30,  25,  20},
  { BUTTON_CreateIndirect,   "5",      GUI_ID_USER +  5,  35,  30,  25,  20},
  { BUTTON_CreateIndirect,   "6",      GUI_ID_USER +  6,  65,  30,  25,  20},
  { BUTTON_CreateIndirect,   "1",      GUI_ID_USER +  1,   5,  55,  25,  20},
  { BUTTON_CreateIndirect,   "2",      GUI_ID_USER +  2,  35,  55,  25,  20},
  { BUTTON_CreateIndirect,   "3",      GUI_ID_USER +  3,  65,  55,  25,  20},
  { BUTTON_CreateIndirect,   "0",      GUI_ID_USER +  0,   5,  80,  25,  20},
  { BUTTON_CreateIndirect,   ".",      GUI_ID_USER + 10,  35,  80,  25,  20},
  { BUTTON_CreateIndirect,   "Del",    GUI_ID_USER + 11,  65,  80,  25,  20},
  { BUTTON_CreateIndirect,   "Tab",    GUI_ID_USER + 12,   5, 105,  25,  20},
  { BUTTON_CreateIndirect,   0,        GUI_ID_USER + 13,  35, 105,  25,  20},
  { BUTTON_CreateIndirect,   0,        GUI_ID_USER + 14,  65, 105,  25,  20},

};

想用GUI做一个计算器,但我不知道GUI_ID_USER + 14,这些ID是怎么来的,而且好像只能是唯一的。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115717
QQ
发表于 2016-5-18 10:24:49 | 显示全部楼层
GUI_ID_USER开始的数值是可供用户使用的ID号,同一个对话框或者窗口上面的控件ID不可以相同。

PS:帮你修改了下题目,方便查看。
回复

使用道具 举报

8

主题

13

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2016-5-18 10:33:21 | 显示全部楼层
如果我想要显示“*” “+”  “-”  “/” 那ID 该怎么设置,
发现以下语句影响del 打印出来的数值
if ((Id >= GUI_ID_USER) && (Id <= (GUI_ID_USER + GUI_COUNTOF(_aDialogNumPad) - 1))) {
        int Key;
        if (Id < GUI_ID_USER + 11) {
          char acBuffer[10];
          BUTTON_GetText(pMsg->hWinSrc, acBuffer, sizeof(acBuffer)); /* Get the text of the button */
          Key = acBuffer[0];
        } else {
          Key = _aKey[Id - GUI_ID_USER - 11];                        /* Get the text from the array */
        }
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115717
QQ
发表于 2016-5-18 16:53:56 | 显示全部楼层

回 hsjdw1 的帖子

hsjdw1:如果我想要显示“*” “+”  “-”  “/” 那ID 该怎么设置,
发现以下语句影响del 打印出来的数值
if ((Id >= GUI_ID_USER) && (Id <= (GUI_ID_USER + GUI_COUNTOF(_aDialogNumPad) - 1))) {
       &nbs .. (2016-05-18 10:33) 
这种的就单独处理,进入button的回调函数中。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-13 20:01 , Processed in 0.255649 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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