|
/*
*********************************************************************************************************
* 函 数 名: MainMenu
* 功能说明: 主界面
* 形 参:无
* 返 回 值: 状态字
*********************************************************************************************************
*/
uint8_t MainMenu(void)
{
uint8_t ucKeyCode; /* 按键代码 */
uint8_t ucTouch; /* 触摸事件 */
uint8_t fRefresh; /* 刷屏请求标志,1表示需要刷新 */
FONT_T tFont; /* 定义一个字体结构体变量,用于设置字体参数 */
FONT_T tIconFont; /* 定义一个字体结构体变量,用于图标文本 */
int16_t tpX, tpY;
uint16_t i;
DispBackground(); /* 显示背景 */
/* 设置字体参数 */
{
tFont.FontCode = FC_ST_16; /* 字体代码 16点阵 */
tFont.FrontColor = MAIN_TEXT_COLOR; /* 字体颜色 */
tFont.BackColor = CL_MASK; /* 文字背景颜色 */
tFont.Space = 0; /* 文字间距,单位 = 像素 */
tIconFont.FontCode = FC_ST_12; /* 字体代码 16点阵 */
tIconFont.FrontColor = MAIN_TEXT_COLOR; /* 字体颜色 */
tIconFont.BackColor = CL_MASK; /* 文字背景颜色 */
tIconFont.Space = 1; /* 文字间距,单位 = 像素 */
}
LCD_DispStr(5, 3, VER_INFO, &tFont); /* 在(8,3)坐标处显示一串汉字 */
LCD_DispStr(5, g_LcdHeight - 13, KEY_INFO, &tIconFont); /* 在(8,3)坐标处显示一串汉字 */
fRefresh = 1; /* 1表示需要刷新LCD */
while (1)
{
bsp_Idle();
if (fRefresh)
{
fRefresh = 0;
/* 显示图标阵列 */
{
for (i = 0; i < ICONS_COUNT; i++)
{
//LCD_DrawIcon(&s_tMainIcons[i], &tIconFont, 0); /* 0 表示正常显示, 1表示选中 */
LCD_DrawIcon32(&s_tMainIcons[i], &tIconFont, 0); /* 0 表示正常显示, 1表示选中 */
}
}
}
ucTouch = TOUCH_GetKey(&tpX, &tpY); /* 读取触摸事件 */
if (ucTouch != TOUCH_NONE)
{
switch (ucTouch)
{
case TOUCH_DOWN: /* 触笔按下事件 */
/* 绘制图标阵列 */
{
for (i = 0; i < ICONS_COUNT; i++)
{
if (TOUCH_InRect(tpX, tpY, s_tMainIcons[i].Left, s_tMainIcons[i].Top,
s_tMainIcons[i].Height, s_tMainIcons[i].Width))
{
LCD_DrawIcon32(&s_tMainIcons[i], &tIconFont, 1); /* 0 表示正常显示, 1表示选中 */
}
}
}
break;
case TOUCH_MOVE: /* 触笔移动事件 */
break;
case TOUCH_RELEASE: /* 触笔释放事件 */
for (i = 0; i < ICONS_COUNT; i++)
{
if (TOUCH_InRect(tpX, tpY, s_tMainIcons[i].Left, s_tMainIcons[i].Top,
s_tMainIcons[i].Height, s_tMainIcons[i].Width))
{
return s_RetStatus[i]; /* 返回程序状态 */
}
}
/* 绘制图标阵列,消除选中状态 */
{
for (i = 0; i < ICONS_COUNT; i++)
{
LCD_DrawIcon32(&s_tMainIcons[i], &tIconFont, 0); /* 0 表示正常显示, 1表示选中 */
}
}
break;
default:
break;
}
}
ucKeyCode = bsp_GetKey(); /* 读取键值, 无键按下时返回 KEY_NONE = 0 */
if (ucKeyCode != KEY_NONE)
{
/* 有键按下 */
switch (ucKeyCode)
{
case KEY_DOWN_K3: /* K3键 */
return MS_CALIBRATION; /* 进入触摸界面 */
//break;
case KEY_DOWN_K1: /* K1键 */
if (++s_ColorIndex >= STYLE_COUNT)
{
s_ColorIndex = 0;
}
/* 重新绘制背景 */
{
DispBackground(); /* 显示背景 */
/* 设置字体参数 */
{
tFont.FontCode = FC_ST_16; /* 字体代码 16点阵 */
tFont.FrontColor = MAIN_TEXT_COLOR; /* 字体颜色 */
tFont.BackColor = CL_MASK; /* 文字背景颜色 */
tFont.Space = 0; /* 文字间距,单位 = 像素 */
tIconFont.FontCode = FC_ST_12; /* 字体代码 16点阵 */
tIconFont.FrontColor = MAIN_TEXT_COLOR; /* 字体颜色 */
tIconFont.BackColor = CL_MASK; /* 文字背景颜色 */
tIconFont.Space = 1; /* 文字间距,单位 = 像素 */
}
LCD_DispStr(5, 3, VER_INFO, &tFont); /* 在(8,3)坐标处显示一串汉字 */
LCD_DispStr(5, g_LcdHeight - 13, KEY_INFO, &tIconFont); /* 在(8,3)坐标处显示一串汉字 */
}
fRefresh = 1;
break;
default:
break;
}
}
}
}
|
|