📄 scheme.c
字号:
scheme_search_stru.keystring = keystring;
scheme_search_stru.field = SCHEME_TIME;
scheme_search_stru.mode = PRECISE_FULL_MATCH;
type[0] = SCHEME_NO_MATURITY; //当天未到期的提醒
type[1] = '\0';
scheme_search_stru.type = type;
global_scheme_list = TransSearchScheme( &scheme_search_stru, 0 ); //读出某天的提醒记录
if( global_scheme_list == NULL )
MessageBox( mainwin, "电子秘书读入当天提醒失败!", "友情提醒", MB_OK);
else
number = global_scheme_list->num;
display_flag = TRUE;
}
if( Msg.lparam == bt_add ) //添加
{
if( CreateScheme( 0 ) != SCHEME_OK )
msgbox = MessageBox(mainwin, "创建提醒失败!", "友情提醒", MB_OKCANCEL|MB_ICONERROR);
display_flag = TRUE;
day_flag = TRUE;
}
if( Msg.lparam == bt_del ) //删除
{
if( select_bt != SCHEME_DISP_NUM )
{
msgbox = MessageBox(mainwin, "是否要删除此普通提醒?", "提示窗", MB_OKCANCEL|MB_ICONEXCLAMATION|MB_DEFBUTTON1);
if( msgbox == IDOK )
{
select_no = suffix_in_disp[ select_bt ];
//检查当前记录
cur_no = (U8)select_no;
scheme_stru = TransReadScheme( select_no, 0 );
// scheme_stru = TransReadScheme( select_no, &record );
GetDate( &date );
com_time = (TIME_STRU *)(scheme_stru->time);
TimetoInt( com_time, &conversion_time );
if( ( *(scheme_stru->type) != SCHEME_MATURITY ) && ( *(scheme_stru->alarm_type) != DO_NOT_ALARM ) ) //过期的提醒不能再编辑//提醒方式为不提醒
DynAlarm( global_scheme_list->head[select_no].index , DEL_TIMER );
if( TransDelScheme( select_no, 0 ) != SCHEME_OK )
msgbox = MessageBox(mainwin, "删除提醒失败!", "友情提醒", MB_OKCANCEL|MB_ICONEXCLAMATION);
else
number = global_scheme_list->num;
Lfree( scheme_stru );
// Lfree( record );
display_flag = TRUE;
}
}else{
msgbox = MessageBox( mainwin, "请选择要删除的记录!", "友情提醒", MB_OK|MB_ICONEXCLAMATION);
}
}
if( Msg.lparam == bt_day )//当日记录
{
display_flag = TRUE;
day_flag = TRUE;
}
if( Msg.lparam == bt_history ) //历史记录
{
FreeDBList( &global_scheme_list, &number );
keystring[0] = SCHEME_MATURITY;
keystring[1] = '\0';
//填充搜索结构
scheme_search_stru.keystring = keystring;
scheme_search_stru.field = SCHEME_TYPE;
scheme_search_stru.mode = PRECISE_FULL_MATCH;
type[0] = SCHEME_ALL;
scheme_search_stru.type = type;
global_scheme_list = TransSearchScheme( &scheme_search_stru, 0 ); //读出某天的提醒记录
if( global_scheme_list == NULL )
MessageBox( mainwin, "电子秘书读入当天提醒失败!", "友情提醒", MB_OK);
else
number = global_scheme_list->num;
display_flag = TRUE;
history_flag = TRUE;
}
if( Msg.lparam == search_menu ) //查找
{
SearchScheme( (U8)Msg.wparam, 0 );
if( global_scheme_list == NULL )
MessageBox( mainwin, "电子秘书读入当天提醒失败!", "友情提醒", MB_OK);
else
number = global_scheme_list->num;
display_flag = TRUE;
}
if( display_flag == TRUE )//汇总
{
if( select_bt != SCHEME_DISP_NUM )
{
activeflag[select_bt] = UNACTIVE;
RepaintWindow( bt_list[count], BS_INVERT );//清按钮的反色区
select_bt = SCHEME_DISP_NUM;
}
if( history_flag == FALSE )
{
GetDate( &com_date );
if( day_flag == TRUE )//重新获取当天的提醒记录
{
FreeDBList( &global_scheme_list, &number );
time = ReadCurSchemeList(); //读取当天的未提醒记录
if( global_scheme_list == NULL )
msgbox = MessageBox( mainwin, "电子秘书读入当天提醒失败!", "友情提醒", MB_OK);
else
number = global_scheme_list->num;
if( number > MAX_INPUT_SCHEME )//获取当天的所有提醒记录(小于MAX_INPUT_SCHEME)
number = MAX_INPUT_SCHEME;
//填写日期栏
SelectListBox( year_list, (U8)(time.year-2000-1) );
SelectListBox( month_list, (U8)(time.month-1) );
SelectListBox( day_list, (U8)(time.day-1) );
// EnableWindow( bt_day, FALSE ); //当日键为disable
}else{
// if( ( com_date.year == time.year ) && ( com_date.month == time.month ) && ( com_date.day == time.day ) )
// EnableWindow( bt_day, FALSE ); //当日键为disable
// else
// EnableWindow( bt_day, TRUE ); //当日键为enable
}
}else{
// EnableWindow( bt_day, TRUE ); //当日键为enable
}
low = 0;
if( number <= SCHEME_DISP_NUM )
{
high = 0;
endp = number;
}else{
high = (U16)(number - SCHEME_DISP_NUM);
endp = SCHEME_DISP_NUM;
}
startp = 0;
SetScrollRange( scroll, low, high );
SetScrollPos( scroll, startp, 0, 0 );
memset( suffix_in_disp, EOD, SCHEME_DISP_NUM*sizeof(U16) );
for( i = 0; ( i < SCHEME_DISP_NUM ) && ( (startp+i) < number ); i++ ) //获得要显示的记录号
suffix_in_disp[i] = startp+i;
SchemeDisplayList( suffix_in_disp, bt_alarm, bt_list, 0 );
display_flag = FALSE;
history_flag = FALSE;
day_flag = FALSE;
}
break;
case WM_VSCROLL:
if(Msg.lparam == scroll)
{
if( startp == 0 ) topdir = TRUE;
if( endp == number ) enddir = TRUE;
switch( Msg.wparam )
{
case SB_LINEDOWN:
startp++;
endp++;
break;
case SB_LINEUP:
startp--;
endp--;
break;
case SB_PAGEDOWN:
startp += SCHEME_DISP_NUM;
endp += SCHEME_DISP_NUM;
break;
case SB_PAGEUP:
startp -= SCHEME_DISP_NUM;
endp -= SCHEME_DISP_NUM;
break;
case SB_ENDSCROLL :
startp = (U8)GetScrollPos(scroll,0,0,0);
endp = startp - SCHEME_DISP_NUM;
break;
default :
break;
}
low = 0;
if( number > SCHEME_DISP_NUM )
{
high = number - SCHEME_DISP_NUM;
if( (S16)(startp) < 0 ) startp = 0;
if( startp > high ) startp = high;
endp = startp + SCHEME_DISP_NUM;
}else{
high = 0;
startp = 0;
endp = number;
}
if(topdir==TRUE)
if( startp != 0 ) topdir = FALSE;
if( enddir == TRUE )
if( endp != number ) enddir = FALSE;
SetScrollRange( scroll, low, high );
if( ( topdir == FALSE ) && ( enddir == FALSE ) )
{
SetScrollPos( scroll, startp, 0, 0 );
if( select_bt != SCHEME_DISP_NUM) //移动的时候需要使原来选择的记录返黑
{
RepaintWindow( bt_list[select_bt], BS_INVERT );
activeflag[select_bt] = UNACTIVE;
select_bt = SCHEME_DISP_NUM;
}
memset( suffix_in_disp, EOD, SCHEME_DISP_NUM*sizeof(U16) );
for( i = 0; ( i < SCHEME_DISP_NUM ) && ( (startp+i) < number ); i++ ) //获得要显示的记录号
suffix_in_disp[i] = startp+i;
SchemeDisplayList( suffix_in_disp, bt_alarm, bt_list, 0 );
}
}
break;
case WM_QUIT:
quit = TRUE;
break;
}
DefWindowProc(Msg.message, Msg.lparam, Msg.data, Msg.wparam);
}
FreeDBList( &global_scheme_list, &number );
ClearRec( pGC, WHITE,3,68,140,146,REPLACE_STYLE );
CreateWindow(WNDCLASS_STATIC, "正在保存中,请等待...", WS_CHILD|SS_TEXT, 30,100,80,60,mainwin,0,NULL);
if( DetachDataBase( schemelacb ) != DB_OK )
msgbox = MessageBox(mainwin, "数据库断开失败!", "友情提醒", MB_OK|MB_ICONERROR);
DestroyWindow(mainwin);
EndofTask();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -