|
#include "includes.h"
#include "MainTask.h"
static WM_HWIN bkchild;
/*
*********************************************************************************************************
* 建立实时监控界面的资源表
*********************************************************************************************************
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate0[] = {
{ WINDOW_CreateIndirect, 0, 0, 0, 0, 480, 280, 0, 0 },
{ TEXT_CreateIndirect, NULL, GUI_ID_TEXT0, 5, 0, 110, 49, TEXT_CF_HCENTER|TEXT_CF_VCENTER},
{ BUTTON_CreateIndirect, NULL, GUI_ID_BUTTON0, 5, 49, 110, 40 },
{ BUTTON_CreateIndirect, NULL, GUI_ID_BUTTON1, 5, 89, 110, 40 },
{ BUTTON_CreateIndirect, NULL, GUI_ID_BUTTON2, 5, 129, 110, 40 },
{ BUTTON_CreateIndirect, NULL, GUI_ID_BUTTON3, 5, 169, 110, 40 },
{ BUTTON_CreateIndirect, NULL, GUI_ID_BUTTON4, 5, 209, 110, 41 },
{ TEXT_CreateIndirect, NULL, GUI_ID_TEXT1, 30, 253, 200, 40, TEXT_CF_LEFT},
};
/*
*********************************************************************************************************
* 函数名: PaintDialogRTCWindows
* 功能说明:实时监控界面的重绘
* 返回值: 无
* ·
*********************************************************************************************************
*/
void PaintDialogRTCWindows(WM_MESSAGE * pMsg)
{
WM_HWIN hWin = pMsg->hWin;
WM_SelectWindow(hWin);
GUI_SetBkColor(GUI_WHITE);
GUI_SetColor(GUI_GREEN);
GUI_FillRect(200,250,400,263); //实现不了,不知道为什么
}
/*
*********************************************************************************************************
* 函数名: InitDialogRTCWinds
* 功能说明: 初始化对话框
* 形参: pMsg
* 返回值:无
*********************************************************************************************************
*/
void InitDialogRTCWindows(WM_MESSAGE * pMsg)
{
GUI_RECT Rect;
WM_HWIN hWin = pMsg->hWin;
WM_SelectWindow(hWin);
GUI_SetBkColor(GUI_WHITE);
GUI_SetColor(GUI_BLACK);
GUI_SetPenSize(40);
GUI_DrawRect(5,0,114,50); //实现不了,不知道为什么
GUI_SetColor(GUI_GREEN);
GUI_FillRect(5,250,475,253); //实现不了,不知道为什么
GUI_SetColor(GUI_GREEN);
GUI_UC_SetEncodeUTF8();
TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT0),&GUI_FontYaHeiB22);
TEXT_SetText(WM_GetDialogItem(hWin,GUI_ID_TEXT0),"实时监控");
TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT0),GUI_GREEN);
TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT1),&GUI_FontYaHe20);
TEXT_SetText(WM_GetDialogItem(hWin,GUI_ID_TEXT1),"告警:"); //无显示,不知道为什么,确定字库中是有“告警:”。
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON4),BUTTON_CI_UNPRESSED,GUI_WHITE);
GUI_UC_SetEncodeUTF8();
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),&GUI_FontYaHeiB22);
BUTTON_SetText(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),"操作控制");
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),&GUI_FontYaHeiB22);
BUTTON_SetText(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),"光伏监控");
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),&GUI_FontYaHeiB22);
BUTTON_SetText(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),"储能监控");
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),&GUI_FontYaHeiB22);
BUTTON_SetText(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),"负荷监控");
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON4),&GUI_FontYaHeiB22);
BUTTON_SetText(WM_GetDialogItem(hWin,GUI_ID_BUTTON4),"返回");
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_UNPRESSED,GUI_LIGHTCYAN);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON4),BUTTON_CI_UNPRESSED,GUI_WHITE);
}
/*
*********************************************************************************************************
* 函数名: _cbCallbackRTCWindows
* 功能说明: 实时监控界面的回调函数
* 形参: pMsg
* 返回值:无
*********************************************************************************************************
*/
void _cbCallback0(WM_MESSAGE * pMsg)
{
int NCode, Id;
WM_HWIN hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_PAINT:
PaintDialogRTCWindows(pMsg);
/ break;
case WM_INIT_DIALOG:
InitDialogRTCWindows(pMsg);
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch (Id)
{
case GUI_ID_BUTTON0:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_UNPRESSED,GUI_LIGHTCYAN);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON4),BUTTON_CI_UNPRESSED,GUI_WHITE);
}
BUTTON_SetDefaultBkColor(GUI_WHITE,BUTTON_CI_UNPRESSED);
break;
case GUI_ID_BUTTON1:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),BUTTON_CI_UNPRESSED,GUI_LIGHTCYAN);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON4),BUTTON_CI_UNPRESSED,GUI_WHITE);
}
BUTTON_SetDefaultBkColor(GUI_WHITE,BUTTON_CI_UNPRESSED);
break;
case GUI_ID_BUTTON2:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),BUTTON_CI_UNPRESSED,GUI_LIGHTCYAN);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON4),BUTTON_CI_UNPRESSED,GUI_WHITE);
}
BUTTON_SetDefaultBkColor(GUI_WHITE,BUTTON_CI_UNPRESSED);
break;
case GUI_ID_BUTTON3:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),BUTTON_CI_UNPRESSED,GUI_WHITE);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),BUTTON_CI_UNPRESSED,GUI_LIGHTCYAN);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON4),BUTTON_CI_UNPRESSED,GUI_WHITE);
}
BUTTON_SetDefaultBkColor(GUI_WHITE,BUTTON_CI_UNPRESSED);
break;
case GUI_ID_BUTTON4:
if(NCode==WM_NOTIFICATION_RELEASED)
GUI_EndDialog(hWin, 0);
WM_DeleteWindow(bkchild);
break;
}
break;
}
WM_DefaultProc(pMsg);
}
/*
*********************************************************************************************************
* 函数名: APP_RCT
* 功能说明: 实时监控界面的函数,
* 形参: WM_HWIN hWin
* 返回值:无
*********************************************************************************************************
*/
void APP_RCT(WM_HWIN hWin) // 传进来的是WM_HBKWIN,该函数是由点击桌面上的小图标连接近来的函数。
{
bkchild=GUI_CreateDialogBox(_aDialogCreate0, GUI_COUNTOF(_aDialogCreate0), _cbCallback0, hWin, 0, 0);
}
为解决的问题有标红,其中最大的问题是触摸按钮没有任何反应,也关闭了不了窗口,按钮里面的函数不能相应,好像就是窗口不使能的状况一样。 |
|