|

楼主 |
发表于 2019-6-5 09:49:47
|
显示全部楼层
版主,我参照ATM机的例程在一步步实现,思路还是有点问题,下面是我设置界面的代码。
1、按上下键能够在三个编辑框之间来回切换
2、按下“确认键”就进入某一个编辑框,然后再按上下键更改编辑框的数值大小,按下返回键就从当前编辑框退出,然后执行1中的操作。
static void _cbSetView(WM_MESSAGE* pMsg)
{
WM_HWIN hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_CREATE:
WM_SetFocus(hWin);//设置聚焦
_CreateEdit(hWin, ID_EDIT(0), 109, 45, 40, 25, "123");
_CreateEdit(hWin, ID_EDIT(1), 109, 90, 40, 25, "456");
_CreateEdit(hWin, ID_EDIT(2), 109,150, 40, 25, "789");
break;
case WM_KEY:
switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key)
{
case GUI_KEY_ESCAPE:
break;
case GUI_KEY_BACKTAB:
WM_SetFocusOnPrevChild(hWin);
break;
case GUI_KEY_TAB:
WM_SetFocusOnNextChild(hWin);
break;
case GUI_KEY_ENTER://按下实体按键的确定键时,进入当前聚焦的编辑框,然后再按上下键更改数值。
这里该怎么做呢?
break;
//菜单键,直接返回主界面
case GUI_KEY_RIGHT:
_DeleteFrame();//删除当前窗口
_CreateFrame(&_cbMainView);//直接进入检测界面
break;
}
break;
//窗口变为无效并应重绘时,发送到窗口
case WM_PAINT:_PaintFrame(); break;
case WM_NOTIFY_PARENT://告知父窗口,其子窗口中发生了某些改变
if (pMsg->Data.v == WM_NOTIFICATION_RELEASED)
{
int Id = WM_GetId(pMsg->hWinSrc);//获取控件ID
switch (Id)
{
case GUI_ID_BUTTON0:
break;
case GUI_ID_BUTTON1:
break;
case GUI_ID_BUTTON2:
break;
default:break;
}
}
break;
case WM_TIMER: break;
default:WM_DefaultProc(pMsg); break;
}
} |
|