|

楼主 |
发表于 2021-2-25 10:27:57
|
显示全部楼层
#define DEBUG(fmt, arg...) printf("%s_%d:" fmt,__func__,__LINE__, ##arg)
void RvDmHome(WM_HWIN hParent);
void RvDmHome01(WM_HWIN hDel,WM_HWIN hParent);
void RvDmHome02(WM_HWIN hDel,WM_HWIN hParent);
void RvDmHome03(WM_HWIN hDel,WM_HWIN hParent);
void RvDmHome04(WM_HWIN hDel,WM_HWIN hParent);
void RvDmHome05(WM_HWIN hDel,WM_HWIN hParent);
int iFlgInit;
typedef struct
{
//bmp的(x0,y0)处截取width×height大小的图片,然后显示到屏幕的(x,y)坐标上。
GUI_BITMAP *pBmp;
int iX;
int iY;
int iX0;
int iY0;
int iWidth;
int iHeight;
}DrwBmpPara_t;
DrwBmpPara_t g_tHomeBmpPara[ID_BUTTON_6-ID_BUTTON_0+1] =
{
{&(g_tRwDm.hPic[16]),0,0,0,0,0,0},
{&(g_tRwDm.hPic[16]),0,0,0,0,0,0},
{&(g_tRwDm.hPic[16]),0,0,40, 140, 400, 195},
{&(g_tRwDm.hPic[16]),0,0,40, 350, 196, 195},
{&(g_tRwDm.hPic[16]),0,0,250,350, 200, 195},
{&(g_tRwDm.hPic[16]),0,0,40, 560, 200, 195},
{&(g_tRwDm.hPic[16]),0,0,250,560, 200, 195}
};
/* 艺术字 */
DrwBmpPara_t g_tArtBmpPara[ID_BUTTON_0-ID_BUTTON_0+1] =
{
{&(g_tRwDm.hPic[20]),0,0,380,40, 50,50},
};
/*
16.dta
艺术字 (44 144)(433 330) (389,186)
变量图标 (44 367)(230 542) (186,175)
数字录入 (250 367)(433 542) (250,367)
弹出菜单 (44 568)(230 751) (44, 568)
动画图标 (250 568)(433 751)
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = //主页面
{
{ WINDOW_CreateIndirect, "Window", ID_WINDOW_0, 120, 0, 480, 800, 0, 0x0, 0 },//120?
//{ BUTTON_CreateIndirect, NULL, ID_BUTTON_0, 0, 470, 600, 100, 0, 0, 0 },
//{ BUTTON_CreateIndirect, NULL, ID_BUTTON_1, 0, 470, 600, 100, 0, 0, 0 },
#if 1
{ BUTTON_CreateIndirect, "", ID_BUTTON_2, 40, 140, 400, 195, 0, 0, 0 },//艺术字
{ BUTTON_CreateIndirect, "", ID_BUTTON_3, 40, 350, 200, 195, 0, 0, 0 },//变量图标
{ BUTTON_CreateIndirect, "", ID_BUTTON_4, 250,350, 200, 195, 0, 0, 0 },//数字录入
{ BUTTON_CreateIndirect, "", ID_BUTTON_5, 40, 560, 200, 195, 0, 0, 0 },//弹出菜单
{ BUTTON_CreateIndirect, "", ID_BUTTON_6, 250,560, 200, 195, 0, 0, 0 } //动画图标
#endif
};
/*艺术字界面*/
static const GUI_WIDGET_CREATE_INFO _aArt[] =
{
{ WINDOW_CreateIndirect, "Window", ID_WINDOW_0, 120, 0, 480, 800, 0, 0x0, 0 },
{ BUTTON_CreateIndirect, NULL, ID_BUTTON_0, 376,48, 50,50, 0, 0, 0 },
};
/*
bmp的(x0,y0)处截取width×height大小的图片,然后显示到屏幕的(x,y)坐标上。
*/
void copy_part_of_bitmap(int x, int y, const GUI_BITMAP *bmp, int x0, int y0, int width, int height)
{
GUI_RECT rect;
rect.x0 = x;
rect.y0 = y;
rect.x1 = x + width - 1;
rect.y1 = y + height - 1;
GUI_SetClipRect(&rect);
GUI_DrawBitmap(bmp, x-x0, y-y0);
GUI_SetClipRect(NULL);
}
/*艺术字*/
static void _CbHomeBtn2(WM_MESSAGE * pMsg)
{
WM_HWIN hWin;
hWin = pMsg->hWin;
DrwBmpPara_t *ptBmp = &g_tHomeBmpPara[ID_BUTTON_2-ID_BUTTON_0];
switch (pMsg->MsgId)
{
case WM_PAINT:
{
DEBUG("\n");
if(BUTTON_IsPressed(hWin))
{
GUI_DrawBitmap(&g_tRwDm.hPic[6], 0, 0);
}
else
{
GUI_DrawBitmap(&g_tRwDm.hPic[1], 0, 0);
}
break;
}
default:
BUTTON_Callback(pMsg);
}
}
/*变量图标*/
static void _CbHomeBtn3(WM_MESSAGE * pMsg)
{
WM_HWIN hWin;
hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_PAINT:
{
DEBUG("\n");
if(BUTTON_IsPressed(hWin))
{
GUI_DrawBitmap(&g_tRwDm.hPic[7], 0, 0);
}
else
{
GUI_DrawBitmap(&g_tRwDm.hPic[2], 0, 0);
}
break;
}
default:
BUTTON_Callback(pMsg);
}
}
/*数字录入*/
static void _CbHomeBtn4(WM_MESSAGE * pMsg)
{
WM_HWIN hWin;
hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_PAINT:
{
DEBUG("\n");
if(BUTTON_IsPressed(hWin))
{
GUI_DrawBitmap(&g_tRwDm.hPic[8], 0, 0);
}
else
{
GUI_DrawBitmap(&g_tRwDm.hPic[3], 0, 0);
}
break;
}
default:
BUTTON_Callback(pMsg);
}
}
/*弹出菜单*/
static void _CbHomeBtn5(WM_MESSAGE * pMsg)
{
WM_HWIN hWin;
hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_PAINT:
{
DEBUG("\n");
if(BUTTON_IsPressed(hWin))
{
GUI_DrawBitmap(&g_tRwDm.hPic[9], 0, 0);
}
else
{
GUI_DrawBitmap(&g_tRwDm.hPic[4], 0, 0);
}
break;
}
default:
BUTTON_Callback(pMsg);
}
}
/*动画图标*/
static void _CbHomeBtn6(WM_MESSAGE * pMsg)
{
WM_HWIN hWin;
hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_PAINT:
{
DEBUG("\n");
if(BUTTON_IsPressed(hWin))
{
GUI_DrawBitmap(&g_tRwDm.hPic[10], 0, 0);
}
else
{
GUI_DrawBitmap(&g_tRwDm.hPic[5], 0, 0);
}
break;
}
default:
BUTTON_Callback(pMsg);
}
}
/*艺术字:关闭x*/
static void _CbArtBtn0(WM_MESSAGE * pMsg)
{
WM_HWIN hWin;
hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_PAINT:
{
DEBUG("\n");
if(BUTTON_IsPressed(hWin))
{
GUI_DrawBitmap(&g_tRwDm.hPic[12], 0, 0);
}
else
{
GUI_DrawBitmap(&g_tRwDm.hPic[13], 0, 0);
}
break;
}
default:
BUTTON_Callback(pMsg);
}
}
/*艺术字:减号*/
static void _CbArtBtn1(WM_MESSAGE * pMsg)
{
WM_HWIN hWin;
hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_PAINT:
{
DEBUG("\n");
if(BUTTON_IsPressed(hWin))
{
GUI_DrawBitmap(&g_tRwDm.hPic[12], 0, 0);
}
else
{
GUI_DrawBitmap(&g_tRwDm.hPic[13], 0, 0);
}
break;
}
default:
BUTTON_Callback(pMsg);
}
}
static void _CbRvDmHome(WM_MESSAGE * pMsg)
{
WM_HWIN hItem;
DrwBmpPara_t *ptBmp;
switch (pMsg->MsgId)
{
case WM_PAINT:
{
DEBUG("\n");
GUI_DrawBitmap(&(g_tRwDm.hPic[0]), 0, 0);
break;
}
case WM_INIT_DIALOG:
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_2);
WM_SetHasTrans(hItem);
WM_SetCallback(hItem, _CbHomeBtn2);
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_3);
WM_SetHasTrans(hItem);
WM_SetCallback(hItem, _CbHomeBtn3);
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_4);
WM_SetCallback(hItem, _CbHomeBtn4);
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_5);
WM_SetCallback(hItem, _CbHomeBtn5);
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_6);
WM_SetCallback(hItem, _CbHomeBtn6);
break;
case WM_NOTIFY_PARENT:
switch(WM_GetId(pMsg->hWinSrc))
{
case ID_BUTTON_2:
switch(pMsg->Data.v)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
RvDmHome01(pMsg->hWin,WM_HBKWIN);
break;
}
break;
case ID_BUTTON_3:
switch(pMsg->Data.v)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
RvDmHome02(pMsg->hWin,WM_HBKWIN);
break;
}
break;
case ID_BUTTON_4:
switch(pMsg->Data.v)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
RvDmHome03(pMsg->hWin,WM_HBKWIN);
break;
}
break;
case ID_BUTTON_5:
switch(pMsg->Data.v)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
RvDmHome04(pMsg->hWin,WM_HBKWIN);
break;
}
break;
case ID_BUTTON_6:
switch(pMsg->Data.v)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
RvDmHome05(pMsg->hWin,WM_HBKWIN);
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
static void _CbRvDm01(WM_MESSAGE * pMsg)
{
WM_HWIN hItem;
DrwBmpPara_t *ptBmp;
switch (pMsg->MsgId)
{
case WM_PAINT:
{
DEBUG("\n");
GUI_DrawBitmap(&(g_tRwDm.hPic[11]), 0, 0);
// GUI_MEMDEV_WriteAt(g_tRwDm.hMemPic[16],120,0);
break;
}
case WM_INIT_DIALOG:
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
WM_SetHasTrans(hItem);
WM_SetCallback(hItem, _CbArtBtn0);
break;
case WM_NOTIFY_PARENT:
switch(WM_GetId(pMsg->hWinSrc))
{
case ID_BUTTON_0:
switch(pMsg->Data.v)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
RvDmHome(WM_HBKWIN);
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
static void _CbRvDm02(WM_MESSAGE * pMsg)
{
WM_HWIN hItem;
DrwBmpPara_t *ptBmp;
switch (pMsg->MsgId)
{
case WM_PAINT:
{
DEBUG("\n");
GUI_DrawBitmap(&(g_tRwDm.hPic[22]), 0, 0);
break;
}
case WM_INIT_DIALOG:
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
WM_SetHasTrans(hItem);
WM_SetCallback(hItem, _CbArtBtn0);
break;
case WM_NOTIFY_PARENT:
switch(WM_GetId(pMsg->hWinSrc))
{
case ID_BUTTON_0:
switch(pMsg->Data.v)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
RvDmHome(WM_HBKWIN);
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
static void _CbRvDm03(WM_MESSAGE * pMsg)
{
WM_HWIN hItem;
DrwBmpPara_t *ptBmp;
switch (pMsg->MsgId)
{
case WM_PAINT:
{
DEBUG("\n");
GUI_DrawBitmap(&(g_tRwDm.hPic[23]), 0, 0);
break;
}
case WM_INIT_DIALOG:
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
WM_SetHasTrans(hItem);
WM_SetCallback(hItem, _CbArtBtn0);
break;
case WM_NOTIFY_PARENT:
switch(WM_GetId(pMsg->hWinSrc))
{
case ID_BUTTON_0:
switch(pMsg->Data.v)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
RvDmHome(WM_HBKWIN);
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
static void _CbRvDm04(WM_MESSAGE * pMsg)
{
WM_HWIN hItem;
DrwBmpPara_t *ptBmp;
switch (pMsg->MsgId)
{
case WM_PAINT:
{
DEBUG("\n");
GUI_DrawBitmap(&(g_tRwDm.hPic[24]), 0, 0);
break;
}
case WM_INIT_DIALOG:
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
WM_SetHasTrans(hItem);
WM_SetCallback(hItem, _CbArtBtn0);
break;
case WM_NOTIFY_PARENT:
switch(WM_GetId(pMsg->hWinSrc))
{
case ID_BUTTON_0:
switch(pMsg->Data.v)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
RvDmHome(WM_HBKWIN);
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
static void _CbRvDm05(WM_MESSAGE * pMsg)
{
WM_HWIN hItem;
DrwBmpPara_t *ptBmp;
switch (pMsg->MsgId)
{
case WM_PAINT:
{
DEBUG("\n");
GUI_DrawBitmap(&(g_tRwDm.hPic[25]), 0, 0);
break;
}
case WM_INIT_DIALOG:
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
WM_SetHasTrans(hItem);
WM_SetCallback(hItem, _CbArtBtn0);
break;
case WM_NOTIFY_PARENT:
switch(WM_GetId(pMsg->hWinSrc))
{
case ID_BUTTON_0:
switch(pMsg->Data.v)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
RvDmHome(WM_HBKWIN);
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
void RvDmHome(WM_HWIN hParent)
{
iFlgInit = 0;
GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _CbRvDmHome, hParent, 0, 0);
}
void RvDmHome01(WM_HWIN hDel,WM_HWIN hParent)
{
WM_DeleteWindow(hDel);
GUI_CreateDialogBox(_aArt, GUI_COUNTOF(_aArt), _CbRvDm01, hParent, 0, 0);
}
void RvDmHome02(WM_HWIN hDel,WM_HWIN hParent)
{
WM_DeleteWindow(hDel);
GUI_CreateDialogBox(_aArt, GUI_COUNTOF(_aArt), _CbRvDm02, hParent, 0, 0);
}
void RvDmHome03(WM_HWIN hDel,WM_HWIN hParent)
{
WM_DeleteWindow(hDel);
GUI_CreateDialogBox(_aArt, GUI_COUNTOF(_aArt), _CbRvDm03, hParent, 0, 0);
}
void RvDmHome04(WM_HWIN hDel,WM_HWIN hParent)
{
WM_DeleteWindow(hDel);
GUI_CreateDialogBox(_aArt, GUI_COUNTOF(_aArt), _CbRvDm04, hParent, 0, 0);
}
void RvDmHome05(WM_HWIN hDel,WM_HWIN hParent)
{
WM_DeleteWindow(hDel);
GUI_CreateDialogBox(_aArt, GUI_COUNTOF(_aArt), _CbRvDm05, hParent, 0, 0);
}
|
|