|

楼主 |
发表于 2018-11-23 13:47:20
|
显示全部楼层
本帖最后由 Allegro_wang 于 2018-11-23 13:56 编辑
按照您提供的思路使用“第47章 用按钮的自定义回调函数就行,可以实现各种效果”
我是通过外部实体按键切换画面的,可以实现我需要的功能:但是:
/*************************************************************************************/
static void _cbButton1(WM_MESSAGE * pMsg)
{
WM_HWIN hWin;
hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_PAINT:
if (BUTTON_IsPressed(hWin))
{
GUI_DrawBitmap(&bmJS1, 10, 10);
}
else
{
GUI_DrawBitmap(&bmJS0, 10, 10);
}
break;
default:
BUTTON_Callback(pMsg);
}
}
/*************************************************************************************/
case WM_KEY:
switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key)
{
case GUI_KEY_F1:
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_JS_0);
if(key_f1==0)
{
BUTTON_SetPressed(hItem,1);
key_f1=1;
}
else if(key_f1==1)
{
BUTTON_SetPressed(hItem,0);
key_f1=0;
}
break;
/*************************************************************************************/
必须使能WM_SetCreateFlags,否则按键切换过程中会出现中间过渡的矩形白块,但是屏幕开启后刷新会变慢
/* 窗口自动使用存储设备 */
WM_SetCreateFlags(WM_CF_MEMDEV);
/*************************************************************************************/
#define GUI_NUMBYTES 42*1024u
/*************************************************************************************/
关闭WM_SetCreateFlags后开机屏幕刷新会变快。但是按键切换时图片就会出现矩形白块的刷新过程
/*************************************************************************************/
硬件配置:STM32F103ZET6 外部8M晶振,
无外部SDRAM,无外部NANFLASH,
ILI9488-3.5液晶屏,
外部独立按键
/*************************************************************************************/
界面说明:
上面3个图标,默认为灰色,当检测到外部按键按下后,图片切换为白色,表示功能开启;
下面1个图标(实际是6个图标)切换时代表不同的功能,这里每次仅显示一个功能图片。
|
-
需要显示的基本界面
|