这次说一个的emWin的BUTTON按钮控件,来看一下效果图:
效果就是创建了五个按钮按钮,并判断是按下的那个按钮的例程。废话不多说,很简单,直接上代码,不罗嗦。
//#include "GUI.h"
#include "BUTTON.h"
#define BUTTON_ID_UP 1
#define BUTTON_ID_DOWN 2
#define BUTTON_ID_LEFT 3
#define BUTTON_ID_RIGHT 4
#define BUTTON_ID_OK 5
#define RECOMMENDED_MEMORY (1024L * 5)
void MainTask(void) {
GUI_Init();
//
// Check if recommended memory for the sample is available
//
if (GUI_ALLOC_GetNumFreeBytes() < RECOMMENDED_MEMORY) {
GUI_ErrorOut("Not enough memory available.");
return;
}
GUI_SetBkColor(GUI_BLACK);
GUI_Clear();
GUI_SetColor(GUI_WHITE);
BUTTON_Handle KEY_VALUE_UP;
BUTTON_Handle KEY_VALUE_DOWN;
BUTTON_Handle KEY_VALUE_LEFT;
BUTTON_Handle KEY_VALUE_RIGHT;
BUTTON_Handle KEY_VALUE_OK;
GUI_SetFont(&GUI_Font8x16);
//
// Create the button and set text
//
KEY_VALUE_UP = BUTTON_Create(80, 20, 40, 40, BUTTON_ID_UP, WM_CF_SHOW);
KEY_VALUE_DOWN = BUTTON_Create(80, 140, 40, 40, BUTTON_ID_DOWN, WM_CF_SHOW);
KEY_VALUE_LEFT = BUTTON_Create(20, 80, 40, 40, BUTTON_ID_LEFT, WM_CF_SHOW);
KEY_VALUE_RIGHT = BUTTON_Create(140, 80, 40, 40, BUTTON_ID_RIGHT, WM_CF_SHOW);
KEY_VALUE_OK = BUTTON_Create(80, 80, 40, 40, BUTTON_ID_OK, WM_CF_SHOW);
BUTTON_SetText(KEY_VALUE_UP, "UP");
BUTTON_SetText(KEY_VALUE_DOWN, "DOWN");
BUTTON_SetText(KEY_VALUE_LEFT, "LEFT");
BUTTON_SetText(KEY_VALUE_RIGHT, "RIGHT");
BUTTON_SetText(KEY_VALUE_OK, "OK");
while (1) {
switch (GUI_WaitKey())
{
case BUTTON_ID_UP:
GUI_DispStringAtCEOL("Up button press", 40, 200);
break;
case BUTTON_ID_DOWN:
GUI_DispStringAtCEOL("Down button press", 40, 200);
break;
case BUTTON_ID_LEFT:
GUI_DispStringAtCEOL("Left button press", 40, 200);
break;
case BUTTON_ID_RIGHT:
GUI_DispStringAtCEOL("Right button press", 40, 200);
break;
case BUTTON_ID_OK:
GUI_DispStringAtCEOL("OK button press", 40, 200);
break;
default:
break;
}
}
}