關於ATM的emwin界面設計 第二,第三個界面設計

關於ATM第二個界面是插入卡的界面,第三個界面是輸入密碼的界面。
例如:
在這裏插入圖片描述
在這裏插入圖片描述
上面的提示語可以在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;
			}

這樣,基本上就實現第二頁和第三頁的控件設計。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章