📄 schfunc.c
字号:
break;
}
}
break;
case WM_COMMAND:
if( Msg.lparam == bt_down ) //下一页
{
GetEditorStr( ed_name, name_buf, SCHEME_NAME_LEN );
if( name_buf[0] == 0 )
msgbox = MessageBox( mainwin, "标题不能为空!", "友情提醒", MB_OK|MB_ICONEXCLAMATION );
else{
if( ( time = (TIME_STRU *)Lmalloc(sizeof(TIME_STRU) ) ) == NULL )
return SCHEME_ERROR;
TimetoChar( conversion_time, time );
memcpy( time_buf, time, sizeof(TIME_STRU) );
time_buf[14] = '\0';
Lfree(time);
scheme_stru->name = name_buf;
scheme_stru->time = time_buf;
scheme_stru->alarm_mode = period_buf;
scheme_stru->type = scheme_stru->type;
DestroyWindow( st );
control_symbol = MODIFY_SECOND_PAGE;
secondpageicon = DrawSecondPage( mainwin );
st = secondpageicon.st;
ed_num = secondpageicon.ed_num;
alarm_list = secondpageicon.alarm_list;
ed_content = secondpageicon.ed_content;
bt_up = secondpageicon.bt_up;
bt_ok = secondpageicon.bt_ok;
bt_cancel = secondpageicon.bt_cancel;
//显示记录内容
SetWindowText( ed_num, scheme_stru->alarm_repeat_num, NULL ); //次数
SelectListBox( alarm_list, (U8)(*(scheme_stru->alarm_type)-48) ); //提醒模式
SetWindowText( ed_content, scheme_stru->content, NULL ); //内容
// memcpy( alarm_type, scheme_stru->alarm_type, SCHEME_ALARM_TYPE_LEN ); //提醒模式
SetFocus( ed_num );
}
}
else if( Msg.lparam == bt_up ) //上一页
{
GetEditorStr( ed_num, num_buf, SCHEME_ALARM_REPEAT_NUM_LEN - 1 );
if( ( num_buf[0] == 0 ) || ( strlen(num_buf) > ( SCHEME_ALARM_REPEAT_NUM_LEN - 1 ) ) )
msgbox = MessageBox( mainwin, "提醒次数不能为空或提醒次数的位数不能多于4位!", "友情提醒", MB_OK|MB_ICONEXCLAMATION);
else{
GetEditorStr( ed_content, content_buf, SCHEME_CONTENT_LEN );
scheme_stru->alarm_repeat_num = num_buf;
scheme_stru->alarm_type = alarm_type;
scheme_stru->content = content_buf;
DestroyWindow( st );
control_symbol = MODIFY_FIRST_PAGE;
firstpageicon = DrawFirstPage( mainwin );
st = firstpageicon.st;
ed_name = firstpageicon.ed_name;
year_list = firstpageicon.year_list;
month_list = firstpageicon.month_list;
day_list = firstpageicon.day_list;
hour_list = firstpageicon.hour_list;
minute_list = firstpageicon.minute_list;
period_list = firstpageicon.period_list;
bt_down = firstpageicon.bt_down;
bt_ok = firstpageicon.bt_ok;
bt_cancel = firstpageicon.bt_cancel;
time = (TIME_STRU *)scheme_stru->time;
TimetoInt( time, conversion_time );
//显示记录内容
SetWindowText( ed_name, scheme_stru->name, NULL ); //名称
SelectListBox( year_list, (U8)(conversion_time->year-2000-1) );
SelectListBox( month_list, (U8)(conversion_time->month-1) );
SelectListBox( day_list, (U8)(conversion_time->day-1) );
SelectListBox( hour_list, (U8)conversion_time->hour );
SelectListBox( minute_list, (U8)conversion_time->minute );
SelectListBox( period_list, (U8)(*(scheme_stru->alarm_mode)-48) );
// memcpy( period_buf, scheme_stru->alarm_mode, SCHEME_ALARM_MODE_LEN );
SetFocus( ed_name );
}
}
if( Msg.lparam == bt_ok ) //确定
{
if( control_symbol == MODIFY_FIRST_PAGE )//页面控制标志(第一页)
{
GetEditorStr( ed_name, name_buf, SCHEME_NAME_LEN );
if( name_buf[0] == 0 )
{
msgbox = MessageBox( mainwin, "标题不能为空!", "友情提醒", MB_OK|MB_ICONEXCLAMATION );
}else{
if( ( time = (TIME_STRU *)Lmalloc(sizeof(TIME_STRU) ) ) == NULL )
return SCHEME_ERROR;
TimetoChar( conversion_time, time );
memcpy( time_buf, time, sizeof(TIME_STRU) );
time_buf[14] = '\0';
Lfree( time );
scheme_stru->name = name_buf;
scheme_stru->time = time_buf;
scheme_stru->alarm_mode = period_buf;
if( TransModifyScheme( *select_no, scheme_stru, 0 ) != SCHEME_OK )
return SCHEME_ERROR;
DynAlarm( global_scheme_list->head[*select_no].index, MODIFY_TIMER );
goto endrv;
}
}
else if( control_symbol == MODIFY_SECOND_PAGE )//页面控制标志(第二页)
{
if( *(scheme_stru->name) == 0 )
{
msgbox = MessageBox( mainwin, "标题不能为空!", "友情提醒", MB_OK|MB_ICONEXCLAMATION );
}else{
GetEditorStr( ed_num, num_buf, SCHEME_ALARM_REPEAT_NUM_LEN - 1 );
if( ( num_buf[0] == 0 ) || ( strlen(num_buf) > ( SCHEME_ALARM_REPEAT_NUM_LEN - 1 ) ) )
msgbox = MessageBox( mainwin, "提醒次数不能为空或提醒次数的位数不能多于4位!", "友情提醒", MB_OK|MB_ICONEXCLAMATION);
else{
GetEditorStr( ed_content, content_buf, SCHEME_CONTENT_LEN );
scheme_stru->alarm_repeat_num = num_buf;
scheme_stru->alarm_type = alarm_type;
scheme_stru->content = content_buf;
if( TransModifyScheme( *select_no, scheme_stru, 0 ) != SCHEME_OK )
return SCHEME_ERROR;
DynAlarm( global_scheme_list->head[*select_no].index, MODIFY_TIMER );
goto endrv;
}
}
}
}
if( Msg.lparam == bt_cancel ) //取消
quit = TRUE;
break;
case WM_QUIT:
quit = TRUE;
break;
default:
break;
}
DefWindowProc( Msg.message, Msg.lparam, Msg.data, Msg.wparam );
}
endrv:
Lfree( conversion_time );
DestroyWindow( mainwin );
return rv;
}
/***********************************************************************************************/
//编辑提醒的页面
STATUS CreateScheme( U8 reserved )
{
static MSG Msg;
U32 pGC;
U8 quit = FALSE;
U32 mainwin, keyboard, tskbar; //主窗口、软件盘
U32 ed_name, year_list,month_list, day_list, hour_list, minute_list, period_list; //提醒记录显示区(第一页)
U32 st, bt_down, bt_up, bt_ok, bt_cancel;//静态框、功能键
U32 ed_num, alarm_list, ed_content; //提醒记录显示区(第二页)
SCHEME_STRU *scheme_stru;
FIRSTPAGEICON firstpageicon;
SECONDPAGEICON secondpageicon;
U16 msgbox;
ASIX_DATE cur_date;
ASIX_TIME cur_time;
TIME_STRU *time, *conversion_time;
U32 id = 0;
U32 rv = SCHEME_OK;
U8 control_symbol = CREATE_FIRST_PAGE;
static char time_buf[SCHEME_TIME_LEN] = {0}, name_buf[SCHEME_NAME_LEN] = {0};
static char alarm_type[SCHEME_ALARM_TYPE_LEN] = {0}, period_buf[SCHEME_ALARM_MODE_LEN] = {0};
static char type_buf[SCHEME_TYPE_LEN] = {0};
static char num_buf[SCHEME_ALARM_REPEAT_NUM_LEN] = {0}, content_buf[SCHEME_CONTENT_LEN] = {0};
pGC = GetGC();
ClearScreen( pGC, WHITE);
memset( (void *)&Msg, 0x0, sizeof(MSG) );
mainwin = CreateWindow(WNDCLASS_WIN, "电子秘书", WS_OVERLAPPEDWINDOW|WS_USERBOX|WS_CLOSEBOX, 0,0,LCD_WIDTH-1,LCD_HEIGHT-1,0,0,NULL);
keyboard = CreateWindow( WNDCLASS_KEYBD,NULL,WS_CHILD|KBS_PINGYING|0xff,1,144,158,70,mainwin,0,NULL);
//任务栏
tskbar = CreateWindow(WNDCLASS_TSKBAR, NULL, WS_CHILD|TBS_TYPICAL, 0, 0, 0, 0,mainwin, 0, NULL);
firstpageicon = DrawFirstPage( mainwin );
st = firstpageicon.st;
ed_name = firstpageicon.ed_name;
year_list = firstpageicon.year_list;
month_list = firstpageicon.month_list;
day_list = firstpageicon.day_list;
hour_list = firstpageicon.hour_list;
minute_list = firstpageicon.minute_list;
period_list = firstpageicon.period_list;
bt_down = firstpageicon.bt_down;
bt_ok = firstpageicon.bt_ok;
bt_cancel = firstpageicon.bt_cancel;
if( ( conversion_time = (TIME_STRU *)Lmalloc(sizeof(TIME_STRU) ) ) == NULL )
return SCHEME_ERROR;
if( ( scheme_stru = (SCHEME_STRU *)Lmalloc( sizeof(SCHEME_STRU) ) ) == NULL ) //获得提醒记录的内容
{
Lfree( conversion_time );
return SCHEME_ERROR;
}
ReadDateTime( &cur_date, &cur_time );
conversion_time->year = (U32)cur_date.year;
conversion_time->month = cur_date.month;
conversion_time->day = cur_date.day;
conversion_time->hour = cur_time.hour;
conversion_time->minute = cur_time.minute;
conversion_time->second = 0;
SelectListBox( year_list, (U8)(cur_date.year-2000-1) );
SelectListBox( month_list, (U8)(cur_date.month-1) );
SelectListBox( day_list, (U8)(cur_date.day-1) );
SelectListBox( hour_list, (U8)cur_time.hour );
SelectListBox( minute_list, (U8)cur_time.minute );
SelectListBox( period_list, (U8)(BY_DAY-48) );
period_buf[0] = BY_DAY;
type_buf[0] = SCHEME_NO_MATURITY; //未到期
alarm_type[0] = RING_ALARM;
scheme_stru->alarm_repeat_num = "1";
scheme_stru->alarm_type = alarm_type;
scheme_stru->content = NULL;
scheme_stru->type = type_buf;
SetFocus( ed_name );
while( !quit )
{
ASIXGetMessage( &Msg, NULL, 0, 0 );
switch( Msg.message )
{
case WM_LISTBOX:
if( Msg.lparam == period_list )
{
switch( Msg.wparam )
{
case 0:
period_buf[0] = BY_HOUR;
break;
case 1:
period_buf[0] = BY_DAY;
break;
case 2:
period_buf[0] = BY_WEEK;
break;
case 3:
period_buf[0] = BY_MONTH;
break;
case 4:
period_buf[0] = BY_YEAR;
break;
}
}
if( Msg.lparam == year_list )
conversion_time->year = Msg.wparam + 2000 + 1;
if( Msg.lparam == month_list )
conversion_time->month = Msg.wparam + 1;
if( Msg.lparam == day_list )
conversion_time->day = Msg.wparam + 1;
if( Msg.lparam == hour_list )
conversion_time->hour = Msg.wparam;
if( Msg.lparam == minute_list )
conversion_time->minute = Msg.wparam;
if( Msg.lparam == alarm_list )
{
switch( Msg.wparam )
{
case 0:
alarm_type[0] = DO_NOT_ALARM;
break;
case 1:
alarm_type[0] = RING_ALARM;
break;
case 2:
alarm_type[0] = WINDOW_ALARM;
break;
}
}
break;
case WM_COMMAND:
if( Msg.lparam == bt_down ) //下一页
{
GetEditorStr( ed_name, name_buf, SCHEME_NAME_LEN );
if( ( time = (TIME_STRU *)Lmalloc(sizeof(TIME_STRU) ) ) == NULL )
return SCHEME_ERROR;
TimetoChar( conversion_time, time );
memcpy( time_buf, time, sizeof(TIME_STRU) );
time_buf[14] = '\0';
Lfree(time);
scheme_stru->name = name_buf;
scheme_stru->time = time_buf;
scheme_stru->alarm_mode = period_buf;
DestroyWindow( st );
control_symbol = CREATE_SECOND_PAGE;
secondpageicon = DrawSecondPage( mainwin );
st = secondpageicon.st;
ed_num = secondpageicon.ed_num;
alarm_list = secondpageicon.alarm_list;
ed_content = secondpageicon.ed_content;
bt_up = secondpageicon.bt_up;
bt_ok = secondpageicon.bt_ok;
bt_cancel = secondpageicon.bt_cancel;
//显示记录内容
SetWindowText( ed_num, scheme_stru->alarm_repeat_num, NULL ); //次数
SelectListBox( alarm_list, (U8)(*(scheme_stru->alarm_type)-48) ); //提醒模式
SetWindowText( ed_content, scheme_stru->content, NULL ); //内容
memcpy( alarm_type, scheme_stru->alarm_type, SCHEME_ALARM_TYPE_LEN ); //提醒模式
SetFocus( ed_num );
}
if( Msg.lparam == bt_up ) //上一页
{
GetEditorStr( ed_num, num_buf, SCHEME_ALARM_REPEAT_NUM_LEN );
if( ( num_buf[0] == 0 ) || ( strlen(num_buf) > ( SCHEME_ALARM_REPEAT_NUM_LEN - 1 ) ) )
msgbox = MessageBox( mainwin, "提醒次数不能为空或提醒次数的位数不能多于4位!", "友情提醒", MB_OK|MB_ICONEXCLAMATION);
else{
GetEditorStr( ed_content, content_buf, SCHEME_CONTENT_LEN );
scheme_stru->alarm_repeat_num = num_buf;
scheme_stru->alarm_type = alarm_type;
scheme_stru->content = content_buf;
DestroyWindow( st );
control_symbol = MODIFY_FIRST_PAGE;
firstpageicon = DrawFirstPage( mainwin );
st = firstpageicon.st;
ed_name = firstpageicon.ed_name;
year_list = firstpageicon.year_list;
month_list = firstpageicon.month_list;
day_list = firstpageicon.day_list;
hour_list = firstpageicon.hour_list;
minute_list = firstpageicon.minute_list;
period_list = firstpageicon.period_list;
bt_down = firstpageicon.bt_down;
bt_ok = firstpageicon.bt_ok;
bt_cancel = firstpageicon.bt_cancel;
time = (TIME_STRU *)scheme_stru->time;
TimetoInt( time, conversion_time );
//显示记录内容
SetWindowText( ed_name, scheme_stru->name, NULL ); //名称
SelectListBox( year_list, (U8)(conversion_time->year-2000-1) );
SelectListBox( month_list, (U8)(conversion_time->month-1) );
SelectListBox( day_list, (U8)(conversion_time->day-1) );
SelectListBox( hour_list, (U8)conversion_time->hour );
SelectListBox( minute_list, (U8)conversion_time->minute );
SelectListBox( period_list, (U8)(*(scheme_stru->alarm_mode)-48) );
// memcpy( period_buf, scheme_stru->alarm_mode, SCHEME_ALARM_MODE_LEN );
SetFocus( ed_name );
}
}
if( Msg.lparam == bt_ok ) //确定
{
GetEditorStr( ed_name, name_buf, SCHEME_NAME_LEN );
if( name_buf[0] == 0 )
{
msgbox = MessageBox( mainwin, "标题不能为空!", "友情提醒", MB_OK|MB_ICONEXCLAMATION );
}else{
if( control_symbol == CREATE_FIRST_PAGE )//页面控制标志(第一页)
{
if( ( time = (TIME_STRU *)Lmalloc(sizeof(TIME_STRU) ) ) == NULL )
return SCHEME_ERROR;
TimetoChar( conversion_time, time );
memcpy( time_buf, time, sizeof(TIME_STRU) );
time_buf[14] = '\0';
Lfree(time);
scheme_stru->name = name_buf;
scheme_stru->time = time_buf;
scheme_stru->alarm_mode = period_buf;
if( TransCreateScheme( &id, scheme_stru, 0 ) != SCHEME_OK )
return SCHEME_ERROR;
DynAlarm( id, ADD_TIMER );
goto endrv;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -