关于ATM的emwin界面设计 第二,第三个界面设计

关于ATM第二个界面是插入卡的界面,第三个界面是输入密码的界面。
例如:
关于ATM的emwin界面设计 第二,第三个界面设计_第1张图片
关于ATM的emwin界面设计 第二,第三个界面设计_第2张图片
上面的提示语可以在WM_PAINT消息里面绘制。

  case WM_PAINT:
	  GUI_SetFont(&GBK_16m16);
	  GUI_SetColor(GUI_BLUE);
	  GUI_DispStringAt("请输入您的密码:", 280, 150);
	
	  break;

至于按钮只要中文显示,就不需要回调函数了,在初始消息里面写就好了。

  case WM_INIT_DIALOG:
	  // Initialization of 'Framewin'
	hItem = pMsg->hWin;
	FRAMEWIN_SetFont(hItem, &GBK_16m16);
	FRAMEWIN_SetText(hItem, "自助取款机");
	FRAMEWIN_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);

对于从页面二转到页面三,在按钮里将页面二关闭,创建页面三

 Id = WM_GetId(pMsg->hWinSrc);
		  WM_DeleteWindow(pMsg->hWin);
		  CreateFramewin3();

按钮输入数字并实时显示在edit小工具里面,因为密码为6位,输入超过6位数,输入按钮将不再有效。所以需要一个位数标志。每个按钮按一下即绘制edit小工具一遍,这样可以做到实时显示。

	if (display == 6)
			break;
			else
			{
				display += 1;
				password = (password * 10) + 1;
				hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
				EDIT_SetFont(hItem, GUI_FONT_20_1);
				EDIT_SetDecMode(hItem, password, 0, 999999, 0, 0);
				break;
			}

按下删除键的话,一位一位删除,

if (display)
			{
				display--;
				password = password / 10;
				hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
				EDIT_SetFont(hItem, GUI_FONT_20_1);
				EDIT_SetDecMode(hItem, password, 0, 999999, 0, 0);
				break;
			}

这样,基本上就实现第二页和第三页的控件设计。

你可能感兴趣的:(EMWIN,PC仿真)