|
楼主 |
发表于 2013-12-7 17:26:35
|
显示全部楼层
#include "DIALOG.h"
#include "data_temp.h"
temp next;
extern const GUI_FONT GUI_FontHZ_Song_16;
/**********************************************************************
重绘背景色
**********************************************************************/
void Back(WM_MESSAGE * pMsg) {
switch (pMsg->MsgId) {
case WM_PAINT:
GUI_DrawGradientRoundedV(0, 0, 399, 239, 0, 0xff5555, 0x880000);//刷新一下
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
void data_init(void)
{
GUI_DrawGradientRoundedV(0, 0, 399, 239, 0, 0xff5555, 0x880000);//刷新一下
GUI_SetTextMode(GUI_TEXTMODE_TRANS);
GUI_SetFont(&GUI_Font8x16);
if((next.page>=0) && (next.page<=9))
{
GUI_DispDecAt(next.page,322+16,2,1);
}
else
if((next.page>=10) && (next.page<=99))
{
GUI_DispDecAt(next.page,322+8,2,2);
}
else
GUI_DispDecAt(next.page,322,2,3);
GUI_DispStringAt("0=",333,30);
GUI_DispHexAt(next.P0[next.page-data_min],333+24,30,2); //在指定位置显示16进制文件
GUI_DispStringAt("1=",333,30+16);
GUI_DispHexAt(next.P1[next.page-data_min],333+24,30+16,2);
GUI_DispStringAt("1=",333,30+32);
GUI_DispHexAt(next.P2[next.page-data_min],333+24,30+32,2);
GUI_DispStringAt("1=",333,30+48);
GUI_DispHexAt(next.P3[next.page-data_min],333+24,30+48,2);
GUI_SetFont(&GUI_FontHZ_Song_16);
GUI_DispStringAt("页",322+24,2);
//CHECKBOX_Init();
}
void page_init(WM_MESSAGE * pMsg) {
int NCode;
int Id;
WM_HWIN hItem;
switch (pMsg->MsgId) {
case WM_PAINT:
data_init();
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
// CHECKBOX_Init();
/*****************************************************************************************************
页面切换,参数x
x=0时页面加一
x=1时页面减一
x!=1andx!=2的时候初始化显示
******************************************************************************************************/
void swit_page(char x)
{
GUI_SetTextMode(GUI_TM_TRANS);//显示透明文本
if(x==0)
{
next.page++;
if(next.page>data_max)
next.page=data_min;
}
else
{
if(x==1)
{
next.page--;
if(next.page<=0)
{
next.page=data_max;
}
}
}
WM_SetCallback(WM_HBKWIN, &page_init);
//data_init();
next.flag=2; //换页的时候不更新数据
next.SPINBOX_flag=2;//换页的时候读取一次数据
}
/*****************************************************************************************************
指定位数据转换
x指定io口
z的值范围
y=0 0x00 0x01
y=1 0x00 0x02
y=2 0x00 0x04
y=3 0x00 0x08
y=4 0x00 0x10
y=5 0x00 0x20
y=6 0x00 0x40
y=7 0x00 0x80
*****************************************************************************************************/
void bit_Trans(unsigned char *x,unsigned char y)
{
unsigned char z;
if(next.flag!=2) //换页的时候不更新数据
{
z=*x&1<<y; //x&0x01 x&0x02 x&0x04 x&0x08
if(z>0)
{
*x=*x-(1<<y);
}
else
*x=*x+(1<<y);
}
}
/*****************************************************************************************************
数据保存保存P0,P1,P2,P3的IO口变化
参数一:哪个IO口
x=0时P0口
X=1时P1口
x=2时P2口
x=3时P3口
参数二:IO口的位
y=0时1111 1110 最低位
y=1时1111 1101
y=2时1111 1011
.
.
.
y=8时0111 1111
函数功能:每进入一次这个函数,指定的位取反
******************************************************************************************************/
void IO_var(unsigned char x,unsigned char y)
{
switch(x)
{
case 0:
//next.P0[next.page-data_max]=0;
bit_Trans(&next.P0[next.page-data_min] , y); //P0口任意位取反
break;
case 1:
bit_Trans(&next.P1[next.page-data_min] , y);
break;
case 2:
bit_Trans(&next.P2[next.page-data_min] , y);
break;
case 3:
bit_Trans(&next.P3[next.page-data_min] , y);
break;
}
WM_SetCallback(WM_HBKWIN, &page_init);
//data_init(); //读取页面显示,io口状态
}
/*********************************************************************************************************
时间临时保存
参数一:小工具句柄
参数二:指向要保存的时间数组
返回值为设置spinbox小工具的值说明保存成功
*********************************************************************************************************
/*
unsigned char Divided[data_max];//分
unsigned char Seconds[data_max];//秒
unsigned char VellusHair[data_max];//十毫秒
*/
unsigned char Time_prese(WM_HWIN hobj,unsigned char *Time)
{
*Time=(unsigned char)SPINBOX_GetValue(hobj);
return *Time;
}
/*********************************************************************************************************
每当换页的时候读取缓存区数据一次数据并显示
参数一:小工具句柄
参数二:指向要保存的时间数组*********************************************************************************************************
/*
unsigned char Divided[data_max];//分
unsigned char Seconds[data_max];//秒
unsigned char VellusHair[data_max];//十毫秒
*/
void read_Time(WM_HWIN hobj,unsigned char *Time)
{
SPINBOX_SetValue(hobj ,*Time);
} |
|