|

楼主 |
发表于 2020-8-11 15:38:11
|
显示全部楼层
#ifndef __FramewinDLG_H
#define __FramewinDLG_H
#include "DIALOG.h"
#include "EmWinHZFont.h"
#define FramewinDLG_TYPE
#else
#define FrameinDLG_TYPE extern
#endif
#define FramewinDLG_TYPE_CLYLE
#define ID_FRAMEWIN_0 (GUI_ID_USER + 0x00)
#define ID_IMAGE_0 (GUI_ID_USER + 0x01)
#define ID_TEXT_0 (GUI_ID_USER + 0x02)
#define ID_TEXT_1 (GUI_ID_USER + 0x03)
#define ID_TEXT_2 (GUI_ID_USER + 0x04)
#define ID_TEXT_3 (GUI_ID_USER + 0x05)
#define ID_TEXT_4 (GUI_ID_USER + 0x06)
#define ID_TEXT_5 (GUI_ID_USER + 0x07)
#define ID_EDIT_0 (GUI_ID_USER + 0x08)
#define ID_EDIT_1 (GUI_ID_USER + 0x09)
#define ID_EDIT_2 (GUI_ID_USER + 0x0A)
#define ID_EDIT_3 (GUI_ID_USER + 0x0B)
#define ID_EDIT_4 (GUI_ID_USER + 0x0C)
#define ID_TEXT_6 (GUI_ID_USER + 0x0D)
#define ID_TEXT_7 (GUI_ID_USER + 0x0E)
#define ID_TEXT_8 (GUI_ID_USER + 0x0F)
#define ID_TEXT_9 (GUI_ID_USER + 0x10)
#define ID_TEXT_10 (GUI_ID_USER + 0x11)
#define ID_TEXT_11 (GUI_ID_USER + 0x12)
#define ID_TEXT_12 (GUI_ID_USER + 0x13)
#define ID_BUTTON_0 (GUI_ID_USER + 0x14)
#define ID_BUTTON_1 (GUI_ID_USER + 0x15)
#define ID_BUTTON_2 (GUI_ID_USER + 0x16)
#define ID_BUTTON_3 (GUI_ID_USER + 0x17)
#define ID_WINDOW_MY (GUI_ID_USER + 0x18)
#define ID_BUTTON_7 (GUI_ID_USER + 0x19)
#define ID_BUTTON_8 (GUI_ID_USER + 0x1A)
#define ID_BUTTON_9 (GUI_ID_USER + 0x1B)
#define ID_BUTTON_10 (GUI_ID_USER + 0x1C)
#define ID_BUTTON_11 (GUI_ID_USER + 0x1D)
#define ID_BUTTON_12 (GUI_ID_USER + 0x1E)
#define ID_BUTTON_13 (GUI_ID_USER + 0x1F)
#define ID_BUTTON_14 (GUI_ID_USER + 0x20)
#define ID_BUTTON_15 (GUI_ID_USER + 0x21)
#define ID_BUTTON_16 (GUI_ID_USER + 0x22)
#define ID_BUTTON_17 (GUI_ID_USER + 0x23)
#define ID_BUTTON_18 (GUI_ID_USER + 0x24)
#define ID_BUTTON_19 (GUI_ID_USER + 0x25)
#define ID_BUTTON_20 (GUI_ID_USER + 0x26)
#define ID_IMAGE_0_IMAGE_0 0x00
FramewinDLG_TYPE WM_HWIN hItemNumPad;
static const void * _GetImageById(U32 Id, U32 * pSize) {
switch (Id) {
case ID_IMAGE_0_IMAGE_0:
*pSize = sizeof(_acImage_0);
return (const void *)_acImage_0;
}
return NULL;
}
//static int _aKey[] = {GUI_KEY_DELETE, GUI_KEY_TAB, GUI_KEY_LEFT, GUI_KEY_RIGHT};
static void _cbDialog(WM_MESSAGE * pMsg) {
const void * pData;
U32 FileSize;
WM_HWIN hItem;
int NCode;
int Id;
unsigned char i;
// USER START (Optionally insert additional variables)
// USER END
switch (pMsg->MsgId) {
case WM_INIT_DIALOG:
//
// Initialization of 'Framewin'
//
hItem = pMsg->hWin;
FRAMEWIN_SetTitleHeight(hItem, 1);
//
// Initialization of 'Image'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_0);
pData = _GetImageById(ID_IMAGE_0_IMAGE_0, &FileSize);
IMAGE_SetJPEG(hItem, pData, FileSize);
//
// Initialization of 'Text'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0);
TEXT_SetFont(hItem,&GUI_FontHZ24);
TEXT_SetTextColor(hItem,GUI_WHITE);
TEXT_SetText(hItem,"测试信息");
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1);
TEXT_SetFont(hItem,&GUI_FontHZ32);
TEXT_SetTextColor(hItem,GUI_WHITE);
TEXT_SetText(hItem,"产品条码");
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_2);
TEXT_SetFont(hItem,&GUI_FontHZ32);
TEXT_SetTextColor(hItem,GUI_WHITE);
TEXT_SetText(hItem,"检测压力");
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_3);
TEXT_SetFont(hItem,&GUI_FontHZ32);
TEXT_SetTextColor(hItem, GUI_WHITE);
TEXT_SetText(hItem,"当前压差");
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_4);
TEXT_SetFont(hItem,&GUI_FontHZ32);
TEXT_SetTextColor(hItem,GUI_WHITE);
TEXT_SetText(hItem,"检测数量");
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_5);
TEXT_SetFont(hItem,&GUI_FontHZ32);
TEXT_SetTextColor(hItem,GUI_WHITE);
TEXT_SetText(hItem,"合格品率");
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_6);
TEXT_SetFont(hItem,&GUI_FontHZ32);
TEXT_SetTextColor(hItem,GUI_WHITE);
TEXT_SetText(hItem,"Kpa");
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_7);
TEXT_SetFont(hItem,&GUI_FontHZ32);
TEXT_SetTextColor(hItem,GUI_WHITE);
TEXT_SetText(hItem,"Pa");
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_8);
TEXT_SetFont(hItem,&GUI_FontHZ32);
TEXT_SetTextColor(hItem,GUI_WHITE);
TEXT_SetText(hItem,"PCS");
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_9);
TEXT_SetFont(hItem,&GUI_FontHZ32);
TEXT_SetTextColor(hItem,GUI_WHITE);
TEXT_SetText(hItem,"%");
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_10);
TEXT_SetFont(hItem,&GUI_FontHZ24);
TEXT_SetTextColor(hItem,GUI_WHITE);
TEXT_SetText(hItem,"泄露量");
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_11);
TEXT_SetFont(hItem,&GUI_FontHZ24);
TEXT_SetTextColor(hItem,GUI_WHITE);
TEXT_SetText(hItem,"Pa");
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_12);
TEXT_SetFont(hItem, &GUI_FontHZ32);
TEXT_SetTextColor(hItem,GUI_WHITE);
TEXT_SetText(hItem,"0.0");
// Initialization of 'Button'
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
BUTTON_SetFont(hItem,&GUI_FontHZ24);
BUTTON_SetText(hItem,"测试记录");
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1);
BUTTON_SetFont(hItem,&GUI_FontHZ24);
BUTTON_SetText(hItem,"参数设置");
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_2);
BUTTON_SetFont(hItem,&GUI_FontHZ24);
BUTTON_SetText(hItem,"停 止");
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_3);
BUTTON_SetFont(hItem,&GUI_FontHZ24);
BUTTON_SetText(hItem,"起 动");
for(i = 0; i < ID_EDIT_4 - ID_EDIT_0 + 1;i ++)
{
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0 + i); // 编辑框
EDIT_SetFont(hItem, &GUI_FontHZ32);
//EDIT_EnableBlink(hItem, 500, 1);
EDIT_SetMaxLen(hItem,3);
EDIT_SetText(hItem,"");
EDIT_SetTextAlign(hItem,GUI_TA_LEFT | GUI_TA_VCENTER);
}
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch(Id) {
case ID_EDIT_0: // Notifications sent by 'Edit'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
WM_ShowWindow(hItemNumPad);
break;
case WM_NOTIFICATION_RELEASED:
break;
case WM_NOTIFICATION_VALUE_CHANGED:
break;
}
break;
case ID_EDIT_1: // Notifications sent by 'Edit'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
WM_ShowWindow(hItemNumPad);
break;
//case WM_NOTIFICATION_RELEASED:
//break;
case WM_NOTIFICATION_VALUE_CHANGED:
break;
}
break;
case ID_EDIT_2: // Notifications sent by 'Edit'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
WM_ShowWindow(hItemNumPad);
break;
// case WM_NOTIFICATION_RELEASED:
// break;
case WM_NOTIFICATION_VALUE_CHANGED:
break;
}
break;
case ID_EDIT_3: // Notifications sent by 'Edit'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
break;
case WM_NOTIFICATION_VALUE_CHANGED:
break;
}
break;
case ID_EDIT_4: // Notifications sent by 'Edit'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
break;
case WM_NOTIFICATION_VALUE_CHANGED:
break;
}
break;
case ID_BUTTON_0: // Notifications sent by 'Button'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
break;
case WM_NOTIFICATION_VALUE_CHANGED:
break;
}
break;
case ID_BUTTON_1: // Notifications sent by 'Button'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
break;
case WM_NOTIFICATION_VALUE_CHANGED:
break;
}
break;
case ID_BUTTON_2: // Notifications sent by 'Button'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
break;
case WM_NOTIFICATION_VALUE_CHANGED:
break;
}
break;
case ID_BUTTON_3: // Notifications sent by 'Button'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
break;
case WM_NOTIFICATION_VALUE_CHANGED:
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
// 向下按键回调函数
static void _cbButtonDown(WM_MESSAGE * pMsg)
{
WM_HWIN hWin;
hWin = pMsg->hWin;
switch(pMsg->MsgId)
{
case WM_PAINT:
if(BUTTON_IsPressed(hWin))
{
GUI_SetBkColor(GUI_WHITE);
GUI_Clear();
}
else
{
GUI_SetBkColor(GUI_LIGHTGRAY);
GUI_Clear();
GUI_PNG_Draw(acdown,sizeof(acdown),16,5);
GUI_SetColor(GUI_WHITE);
GUI_DrawHLine(1,0,80);
GUI_DrawHLine(55,0,80);
GUI_SetColor(GUI_BLACK);
GUI_DrawHLine(0,0,80);
GUI_DrawHLine(56,0,80);
GUI_DrawHLine(57,0,80);
GUI_DrawVLine(0,0,58);
GUI_DrawVLine(80,0,58);
}
break;
default:
BUTTON_Callback(pMsg);
break;
}
}
// 删除按键回调函数
static void _cbButtonDelete(WM_MESSAGE * pMsg)
{
WM_HWIN hWin;
hWin = pMsg->hWin;
switch(pMsg->MsgId)
{
case WM_PAINT:
if(BUTTON_IsPressed(hWin))
{
GUI_SetBkColor(GUI_WHITE);
GUI_Clear();
}
else
{
GUI_SetBkColor(GUI_LIGHTGRAY);
GUI_Clear();
GUI_PNG_Draw(acbackspace,sizeof(acbackspace),35,50);
GUI_SetColor(GUI_WHITE);
GUI_DrawHLine(1,0,118);
GUI_DrawHLine(145,0,118);
GUI_DrawVLine(1,0,148);
GUI_SetColor(GUI_BLACK);
GUI_DrawHLine(0,0,118);
GUI_DrawHLine(146,0,118);
GUI_DrawHLine(147,0,118);
GUI_DrawVLine(0,0,148);
GUI_DrawVLine(117,0,148);
}
break;
default:
BUTTON_Callback(pMsg);
break;
}
}
// 回车按键回调函数
static void _cbButtonEnter(WM_MESSAGE * pMsg)
{
WM_HWIN hWin;
hWin = pMsg->hWin;
switch(pMsg->MsgId)
{
case WM_PAINT:
if(BUTTON_IsPressed(hWin))
{
GUI_SetBkColor(GUI_WHITE);
GUI_Clear();
}
else
{
GUI_SetBkColor(GUI_LIGHTGRAY);
GUI_Clear();
GUI_PNG_Draw(acenter,sizeof(acenter),35,50);
GUI_SetColor(GUI_WHITE);
GUI_DrawHLine(1,0,118);
GUI_DrawHLine(145,0,118);
GUI_DrawVLine(1,0,148);
GUI_SetColor(GUI_BLACK);
GUI_DrawHLine(0,0,118);
GUI_DrawHLine(146,0,118);
GUI_DrawHLine(147,0,118);
GUI_DrawVLine(0,0,148);
GUI_DrawVLine(117,0,148);
}
break;
default:
BUTTON_Callback(pMsg);
break;
}
}
// 数字键盘窗口回调函数
static void _cbWindowNumPadPage(WM_MESSAGE * pMsg)
{
int Pressed;
int NCode;
int Id;
Pressed = 0;
switch (pMsg->MsgId) {
case WM_PAINT:
GUI_SetBkColor(GUI_GRAY);
GUI_Clear();
// 画两个按键框
GUI_SetColor(GUI_BLACK);
GUI_AA_FillRoundedRect(1,1,395,57,3);
GUI_AA_FillRoundedRect(1,286,118,358,5);
GUI_SetColor(GUI_WHITE);
GUI_AA_FillRoundedRect(2,2,394,56,3);
GUI_AA_FillRoundedRect(2,287,117,357,5);
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
if(Id == ID_BUTTON_7)
break;
Pressed = 1;
case WM_NOTIFICATION_RELEASED:
switch(Id) {
case ID_BUTTON_7: // 向下
GUI_EndDialog(pMsg->hWin, 0);
//WM_HideWindow(hItemNumPad);
break;
case ID_BUTTON_8: // 1
GUI_SendKeyMsg('1', Pressed);
break;
case ID_BUTTON_9: // 2
GUI_SendKeyMsg('2', Pressed);
break;
case ID_BUTTON_10: // 3
GUI_SendKeyMsg('3', Pressed);
break;
case ID_BUTTON_11: // 4
GUI_SendKeyMsg('4', Pressed);
break;
case ID_BUTTON_12: // 5
GUI_SendKeyMsg('5', Pressed);
break;
case ID_BUTTON_13: // 6
GUI_SendKeyMsg('6', Pressed);
break;
case ID_BUTTON_14: // 7
GUI_SendKeyMsg('7', Pressed);
break;
case ID_BUTTON_15: // 8
GUI_SendKeyMsg('8', Pressed);
break;
case ID_BUTTON_16: // 9
GUI_SendKeyMsg('9', Pressed);
break;
case ID_BUTTON_17: // 0
GUI_SendKeyMsg('0', Pressed);
break;
case ID_BUTTON_18: // .
GUI_SendKeyMsg('.', Pressed);
break;
case ID_BUTTON_19: // delete
GUI_SendKeyMsg(GUI_KEY_BACKSPACE, Pressed);
break;
case ID_BUTTON_20: // enter
// GUI_SendKeyMsg('1', Pressed);
break;
}
break;
}
default:
WM_DefaultProc(pMsg);
}
}
// 数字键盘对话框设置界面
static void _cbDialogNumPadPage(WM_MESSAGE * pMsg) {
WM_HWIN hItem;
unsigned int i;
switch (pMsg->MsgId) {
case WM_INIT_DIALOG:
// 窗口
hItem = pMsg->hWin;
WM_SetCallback(hItem,_cbWindowNumPadPage); // 窗口
// 按键禁止输入焦点
for(i = 0; i < ID_BUTTON_20 - ID_BUTTON_7 + 1; i++)
{
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_7 + i);
BUTTON_SetBkColor(hItem,BUTTON_CI_UNPRESSED,GUI_LIGHTGRAY);
BUTTON_SetFont(hItem,GUI_FONT_32_ASCII);
BUTTON_SetFocussable(hItem,0);
}
// 向下按键
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_7);
WM_SetCallback(hItem,_cbButtonDown);
// 删除键
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_19);
WM_SetCallback(hItem,_cbButtonDelete);
// 回车键
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_20);
WM_SetCallback(hItem,_cbButtonEnter);
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
/*********************************************************************
*
* Public code
*
**********************************************************************
*/
/*********************************************************************
*
* CreateFramewin
*/
void f_MainTask(void) {
#if GUI_SUPPORT_MEMDEV
WM_SetCreateFlags(WM_CF_MEMDEV);
#endif
WM_SetCreateFlags(WM_CF_MEMDEV);
GUI_Init();
WM_HWIN hWin;
hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
}
/*************************** End of file ****************************/
这个键盘怎么弹不出来?点击EDIT没反应,硬汉哥可以帮忙看看吗?我用WM_ShowWindow(hItemhNumPad)来显示键盘窗口
|
|