中级会员
 
- 积分
- 407
- 金钱
- 407
- 注册时间
- 2014-10-22
- 在线时间
- 135 小时
|
本帖最后由 I is alun 于 2016-6-5 22:29 编辑
1.不用设置父子联系
2.设置按钮,按钮按下然后释放时响应
3.enddialog,然后execdialog或createdialog即可
4.while(1){GUI_exec();或WM_exec();}
很方便
[mw_shl_code=c,true]/*
******************************************************************
** uCGUIBuilder **
** Version: 2.0.0.5 **
** 2011 / 08 **
** CpoyRight to: wyl **
** Email:wyl2008056@163.com **
** This text was Created by uCGUIBuilder **
******************************************************************/
#include "demo1.h"
#include "delay.h"
//+++++++++++++++++以下是A对话框+++++++++++++++++++++++++++++++++++++
//资源配置表
static const GUI_WIDGET_CREATE_INFO _A_TABLE[] =
{
/*窗口控件*/ { FRAMEWIN_CreateIndirect, "ADialog", 0, 0, 0, 240,320, FRAMEWIN_CF_ACTIVE,0},
/*按钮控件*/ { BUTTON_CreateIndirect, "down", GUI_ID_BUTTON0, 240-50-5, 320-50-22-5, 50, 50, 0,0}, //320-50-5-32还要减去对话框标题栏的高度22,减去对话框边缘宽度5(不知道是多少)
};
//初始化对话框界面
void PAInitDialog(WM_MESSAGE * pMsg)
{
WM_HWIN hWin = pMsg->hWin;
//
//FRAMEWIN
//
FRAMEWIN_SetFont(hWin,&GUI_Font16B_ASCII);
FRAMEWIN_SetBarColor(hWin,1,GUI_GRAY);
FRAMEWIN_SetClientColor(hWin,GUI_DARKGRAY);
FRAMEWIN_SetTextColor(hWin,GUI_BLUE);
FRAMEWIN_AddCloseButton(hWin, FRAMEWIN_BUTTON_RIGHT, 0);
FRAMEWIN_AddMaxButton(hWin, FRAMEWIN_BUTTON_RIGHT, 1);
FRAMEWIN_AddMinButton(hWin, FRAMEWIN_BUTTON_RIGHT, 2);
FRAMEWIN_SetTitleHeight(hWin,22);
//
//GUI_ID_BUTTON0
//
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),&GUI_Font16B_ASCII);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_UNPRESSED,GUI_BLUE);
BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_UNPRESSED,GUI_GREEN);
}
//回调函数
static void _cbCallbackA(WM_MESSAGE * pMsg)
{
int Id,NCode;
unsigned short Get_No;
WM_HWIN hDlg;
hDlg = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_PAINT://重绘事件
break;
case WM_INIT_DIALOG: //初始化事件
PAInitDialog(pMsg);
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);//控件ID号
NCode = pMsg->Data.v;//通知代码信号量
switch(NCode)
{
case WM_NOTIFICATION_RELEASED:
if(Id == GUI_ID_BUTTON0)
{
GUI_EndDialog(hDlg, 0);
BDialogBox(); //创建B对话框
}
break;
default:
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
//创建对话框
void ADialogBox(void)
{
WM_HWIN AhWin = GUI_CreateDialogBox(_A_TABLE, GUI_COUNTOF(_A_TABLE), &_cbCallbackA, 0, 0, 0);//创建一个非阻塞式对话框
WM_MakeModal(AhWin);//设置成模态窗口
}
//+++++++++++++++++以下是B对话框+++++++++++++++++++++++++++++++++++++
//资源配置表
static const GUI_WIDGET_CREATE_INFO _B_TABLE[] =
{
{ FRAMEWIN_CreateIndirect, "BDialog", 0, 0, 0, 240,320, FRAMEWIN_CF_ACTIVE,0},
{ BUTTON_CreateIndirect, "down", GUI_ID_BUTTON1, 240-50-5, 320-50-22-5, 50, 50, 0,0},
{ BUTTON_CreateIndirect, "up", GUI_ID_BUTTON2, 0, 320-50-22-5, 50, 50, 0,0},
};
//初始化对话框界面
void PBInitDialog(WM_MESSAGE * pMsg)
{
WM_HWIN hWin = pMsg->hWin;
//
//FRAMEWIN
//
FRAMEWIN_SetFont(hWin,&GUI_Font16B_ASCII);
FRAMEWIN_SetBarColor(hWin,1,GUI_GRAY);
FRAMEWIN_SetClientColor(hWin,GUI_DARKGRAY);
FRAMEWIN_SetTextColor(hWin,GUI_BLUE);
FRAMEWIN_AddCloseButton(hWin, FRAMEWIN_BUTTON_RIGHT, 0);
FRAMEWIN_AddMaxButton(hWin, FRAMEWIN_BUTTON_RIGHT, 1);
FRAMEWIN_AddMinButton(hWin, FRAMEWIN_BUTTON_RIGHT, 2);
FRAMEWIN_SetTitleHeight(hWin,22);
//
//GUI_ID_BUTTON1
//
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),&GUI_Font16B_ASCII);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),BUTTON_CI_UNPRESSED,GUI_BLUE);
BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),BUTTON_CI_UNPRESSED,GUI_GREEN);
//
//GUI_ID_BUTTON2
//
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),&GUI_Font16B_ASCII);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),BUTTON_CI_UNPRESSED,GUI_BLUE);
BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),BUTTON_CI_UNPRESSED,GUI_GREEN);
}
//回调函数
static void _cbCallbackB(WM_MESSAGE * pMsg)
{
int Id,NCode;
WM_HWIN hDlg;
hDlg = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_INIT_DIALOG: //初始化事件
PBInitDialog(pMsg);
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);//控件ID号
NCode = pMsg->Data.v;//通知代码信号量
switch(NCode)
{
case WM_NOTIFICATION_RELEASED:
if(Id == GUI_ID_BUTTON1)//下一页
{
GUI_EndDialog(hDlg, 0);
CDialogBox();
}
if(Id == GUI_ID_BUTTON2)//上一页
{
GUI_EndDialog(hDlg, 0);
ADialogBox(); //呢?
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
}
//创建对话框
void BDialogBox(void)
{
WM_HWIN PBhWin = GUI_CreateDialogBox(_B_TABLE, GUI_COUNTOF(_B_TABLE), &_cbCallbackB,0, 0, 0);//创建一个非阻塞式对话框,第一个0表示没有父窗口
WM_MakeModal(PBhWin);//设置成模态窗口
}
//+++++++++++++++++以下是C对话框+++++++++++++++++++++++++++++++++++++
//资源配置表
static const GUI_WIDGET_CREATE_INFO _C_TABLE[] =
{
/*窗口控件*/ { FRAMEWIN_CreateIndirect, "CDialog", 0, 0, 0, 240,320, FRAMEWIN_CF_ACTIVE,0},
/*按钮控件*/ { BUTTON_CreateIndirect, "up", GUI_ID_BUTTON3, 0,320-50-5-22, 50, 50, 0,0},
};
//初始化对话框界面
void PCInitDialog(WM_MESSAGE * pMsg)
{
WM_HWIN hWin = pMsg->hWin;
//
//FRAMEWIN
//
FRAMEWIN_SetFont(hWin,&GUI_Font16B_ASCII);
FRAMEWIN_SetBarColor(hWin,1,GUI_GRAY);
FRAMEWIN_SetClientColor(hWin,GUI_DARKGRAY);
FRAMEWIN_SetTextColor(hWin,GUI_BLUE);
FRAMEWIN_AddCloseButton(hWin, FRAMEWIN_BUTTON_RIGHT, 0);
FRAMEWIN_AddMaxButton(hWin, FRAMEWIN_BUTTON_RIGHT, 1);
FRAMEWIN_AddMinButton(hWin, FRAMEWIN_BUTTON_RIGHT, 2);
FRAMEWIN_SetTitleHeight(hWin,22);
//
//GUI_ID_BUTTON3
//
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),&GUI_Font16B_ASCII);
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),BUTTON_CI_UNPRESSED,GUI_BLUE);
BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),BUTTON_CI_UNPRESSED,GUI_GREEN);
}
//回调函数
static void _cbCallbackC(WM_MESSAGE * pMsg)
{
int Id,NCode;
unsigned short Get_No;
WM_HWIN hDlg;
hDlg = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_PAINT://重绘事件
break;
case WM_INIT_DIALOG: //初始化事件
PCInitDialog(pMsg);
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);//控件ID号
NCode = pMsg->Data.v;//通知代码信号量
switch(NCode)
{
case WM_NOTIFICATION_RELEASED:
if(Id == GUI_ID_BUTTON3)
{
GUI_EndDialog(hDlg, 0);
BDialogBox(); //创建B对话框
}
break;
default:
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
//创建对话框
void CDialogBox(void)
{
WM_HWIN ChWin = GUI_CreateDialogBox(_C_TABLE, GUI_COUNTOF(_C_TABLE), &_cbCallbackC, 0, 0, 0);//创建一个非阻塞式对话框
WM_MakeModal(ChWin);//设置成模态窗口
}
[/mw_shl_code]
效果如下:
|
|