硬汉嵌入式论坛

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

[emWin] 硬汉哥,我在看你的ATM机代码的时候有几个问题不明白,请教

[复制链接]

14

主题

34

回帖

14

积分

新手上路

积分
14
发表于 2014-7-30 21:18:41 | 显示全部楼层 |阅读模式
问题1:
代码如下:
/*
*********************************************************************************************************
* 函 数 名: _cbEnterPIN
* 功能说明: 第三个界面,输入密码
* 形    参:pMsg  参数指针
* 返 回 值: 无
*********************************************************************************************************
*/
static void _cbInsertCard(WM_MESSAGE* pMsg);
static void _cbEnterPIN(WM_MESSAGE* pMsg)
{
WM_HWIN hItem, hWin = pMsg->hWin;
static int PinError;

switch (pMsg->MsgId)
{
  case WM_CREATE:
   /* 创建后,设置聚焦 */
   PinError = 0;
   WM_SetFocus(hWin);
      /* 创建小键盘,数值55是下面编辑框的高度和起始位置的和30+25=55*/
   _CreateNumPad(hWin, FRAME_WIDTH >> 1, (55 + FRAME_HEIGHT)>>1); //就是这个地方:函数里给出了键盘的创建加回调函数,这都没问题,可是这个是在
case   WM_CREATE:条件下做的,这个不是只在创建时才是这个类型吗,那创建可之后,不是就不进入在这个case语句了吗,可是它还是能正常的进入小键盘的回调函数
这个里面???????,希望指导一下
   hItem = EDIT_CreateEx((FRAME_WIDTH >> 1) - 50, 30, 100, 25, hWin, WM_CF_SHOW, 0, GUI_ID_EDIT0, 4);
   EDIT_SetFont(hItem, &GUI_FontYahei);
   EDIT_SetTextAlign(hItem, GUI_TA_CENTER);
   WIDGET_SetEffect(hItem, DEFAULT_WIDGET_EFFECT);
   WM_DisableWindow(hItem);
   break;
  case WM_PAINT:
希望指导一下,谢谢


问题2:
我一直不太明白什么才是按键消息:
case WM_KEY:
            switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key)  //这个算是强制转化吗?,那他的键值又是怎么来的呢,很不理解,
            {
    case GUI_KEY_ESCAPE:
                    GUI_EndDialog(hWin, 1);
                    break;
    case GUI_KEY_TAB:
     WM_SetFocusOnNextChild(hWin);
     break;
            }
            break;


先请教这两个问题吧,之后不明白再拉i问啊,谢谢硬汉哥,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107221
QQ
发表于 2014-7-30 22:36:52 | 显示全部楼层
1.  这个创建的是非阻塞的键盘,可以回来的。
2. 看main函数里面的一个按键任务,通过按键任务给其发送消息的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 08:28 , Processed in 0.227197 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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