📄 emlfunc.c
字号:
/***********************************************************************************************/
//按时间查询
LOCALSEARCHLIST* SearchByDate( LOCALSEARCHLIST *global_email_list, U8 reversed )
{
static MSG Msg;
U32 pGC;
U8 quit = FALSE;
U32 mainwin; //主窗口
U32 tskbar;
U32 check; //关键字输入区
U32 bt_ok, bt_cancel; //功能键
U16 msgbox;
ASIX_DATE date;
TIME_STRU time, conversion_time;
static char keystring[KEYSTRING_LEN] = {0};
EMAIL_SEARCH_STRU email_search_stru;
U16 number;
static SL_ITEM item[]=
{
SL_UNCHECKED, "一天内",
SL_UNCHECKED, "一周内",
SL_UNCHECKED, "一月内",
SL_UNCHECKED, "一年内",
0, NULL
};
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);
//任务栏
tskbar = CreateWindow(WNDCLASS_TSKBAR, NULL, WS_CHILD|TBS_TYPICAL, 0, 0, 0, 0,mainwin, 0, NULL);
//关键字输入区
check = CreateWindow(WNDCLASS_SELECT, "请选择时间查找范围:", WS_CHILD|SLS_RADIOBOX|SLS_ENABLE|SLS_FRAME, 5,22,150,170,mainwin,0, item);
//功能键
bt_ok = CreateWindow(WNDCLASS_BUTTON, "确定", WS_CHILD|BS_REGULAR, 30,196,40,20,mainwin,0,NULL);
bt_cancel = CreateWindow(WNDCLASS_BUTTON, "取消", WS_CHILD|BS_REGULAR, 90,196,40,20,mainwin,0,NULL);
while( !quit )
{
ASIXGetMessage( &Msg, NULL, 0, 0 );
switch( Msg.message )
{
case WM_SELECTBOX:
if( Msg.lparam == check )
keystring[0] = Msg.wparam + 48;
break;
case WM_COMMAND:
if( Msg.lparam == bt_ok ) //确定
{
if( keystring[0] == 0 )
{
msgbox = MessageBox( mainwin, "请先选择查找的时间范围!", "友情提醒", MB_OK|MB_ICONEXCLAMATION);
}
else{
GetDate( &date );
time.year = (U32)date.year;
time.month = date.month;
time.day = date.day;
time.hour = time.minute = time.second = 0;
TimetoChar( &time, &conversion_time );
strcat( keystring, (char *)(&conversion_time) ); //获得关键字
keystring[15] = '\0';
FreeDBList( &global_email_list, &number );
// global_email_list = LocalFindRecord( emaillacb, EMAIL_TIME, keystring, PRECISE_PART_MATCH );
email_search_stru.field = EMAIL_TIME;
email_search_stru.keystring = keystring;
email_search_stru.mode = PRECISE_PART_MATCH;
global_email_list = TransSearchEmail( &email_search_stru, 0 );
// *number = global_email_list->num;
quit = TRUE;
}
}
if( Msg.lparam == bt_cancel ) //取消
quit = TRUE;
break;
case WM_QUIT:
quit = TRUE;
break;
}
DefWindowProc( Msg.message, Msg.lparam, Msg.data, Msg.wparam );
}
DestroyWindow( mainwin );
return global_email_list;
}
/***********************************************************************************************/
//保存
STATUS SaveEmail( EMAIL_STRU *email_stru, U8 type )
{
switch( type )
{
case 0: //保存到地址本
return Add2Addrbk( email_stru->addresser, 0 );
break;
case 1: //保存到草稿箱
return Add2UnsendBox( email_stru, 0 );
break;
case 2: //保存到记事本
return Add2Ntpad( email_stru->content, 0 );
break;
default:
return EMAIL_OK;;
}
}
/***********************************************************************************************/
//保存到地址本
STATUS Add2Addrbk( char *addresser, U8 reserved )
{
return EMAIL_OK;
}
/***********************************************************************************************/
//保存到发送箱
STATUS Add2UnsendBox( EMAIL_STRU *email_stru, U8 reserved )
{
ASIX_DATE cur_date;
ASIX_TIME cur_time;
TIME_STRU *time, conversion_time;
static char time_buf[EMAIL_TIME_LEN];
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;
if( ( time = (TIME_STRU *)Lmalloc(sizeof(TIME_STRU) ) ) == NULL )
return EMAIL_ERROR;
TimetoChar( &conversion_time, time );
memcpy( time_buf, time, sizeof(TIME_STRU) );
time_buf[EMAIL_TIME_LEN-1] = '\0';
Lfree( time );
email_stru->time = time_buf;
*(email_stru->box) = EMAIL_UNSEND_BOX;
*(email_stru->type) = EMAIL_UNSEND;
if( TransCreateEmail( email_stru, 0 ) != EMAIL_OK )
MessageBox(0, "保存失败!", "提醒", MB_ICONEXCLAMATION|MB_OK);
// else
// MessageBox(0, "保存完毕!", "提醒", MB_ICONEXCLAMATION|MB_OK);
return EMAIL_OK;
}
/***********************************************************************************************/
//保存到记事本
STATUS Add2Ntpad( char *content, U8 reserved )
{
return EMAIL_OK;
}
/***********************************************************************************************/
//设置系统参数
void SetSysNetParam( U8 reserved )
{
static MSG Msg;
U32 pGC;
U8 quit = FALSE;
U32 mainwin, keyboard, kb, tskbar; //主窗口、软件盘、任务栏
U32 st1, st2, st3, st4;
U32 ed1, ed2, ed3, ed4;
U32 st, st5, st6, st7, st8;
U32 ed5, ed6, ed7, ed8;
U32 bt_step, bt_ok, bt_cancel;
NET_SERVER_STRU temp_net_server_stru;
U8 control_symbol = FIRST_PAGE, flag = FALSE, kbflag = TRUE;
pGC = GetGC();
ClearScreen( pGC, WHITE);
memset( (void *)&Msg, 0x0, sizeof(MSG) );
memset( (void *)&net_server_stru, 0x0, sizeof(NET_SERVER_STRU) );
mainwin = CreateWindow(WNDCLASS_WIN, "电子邮件", WS_OVERLAPPEDWINDOW|WS_USERBOX|WS_CLOSEBOX, 0,0,LCD_WIDTH-1,LCD_HEIGHT-1,0,0,NULL);
tskbar = CreateWindow(WNDCLASS_TSKBAR, NULL, WS_CHILD|TBS_TYPICAL, 0, 0, 0, 0,mainwin, 0, NULL);
kb = AddBtn2TskBar(tskbar, NULL, BS_ICON, 20, (char *)zi_jianpan);
//内容列表
st1 = CreateWindow(WNDCLASS_STATIC, NULL, WS_CHILD|SS_TEXT, 1,20,66,20,mainwin,0,NULL);
st2 = CreateWindow(WNDCLASS_STATIC, NULL, WS_CHILD|SS_TEXT, 1,42,66,20,mainwin,0,NULL);
st3 = CreateWindow(WNDCLASS_STATIC, NULL, WS_CHILD|SS_TEXT, 1,64,66,20,mainwin,0,NULL);
st4 = CreateWindow(WNDCLASS_STATIC, NULL, WS_CHILD|SS_TEXT, 1,86,66,20,mainwin,0,NULL);
ed1 = CreateWindow(WNDCLASS_EDITOR, NULL, WS_CHILD|ES_SINGLE_REGULAR, 69,20,88,20,mainwin,40,NULL);
ed2 = CreateWindow(WNDCLASS_EDITOR, NULL, WS_CHILD|ES_SINGLE_REGULAR, 69,42,88,20,mainwin,40,NULL);
ed3 = CreateWindow(WNDCLASS_EDITOR, NULL, WS_CHILD|ES_SINGLE_REGULAR, 69,64,88,20,mainwin,40,NULL);
ed4 = CreateWindow(WNDCLASS_EDITOR, NULL, WS_CHILD|ES_SINGLE_REGULAR, 69,86,88,20,mainwin,40,NULL);
st = CreateWindow(WNDCLASS_STATIC, NULL, WS_CHILD|SS_TEXT, 1,107,66,101,mainwin,0,NULL);
keyboard = CreateWindow( WNDCLASS_KEYBD,NULL,WS_CHILD|KBS_PINGYING|0xff,1,144,158,70,st,0,NULL);
bt_step = CreateWindow(WNDCLASS_BUTTON, NULL, WS_CHILD|BS_REGULAR, 40,108,20,20,st,0,NULL);
bt_ok = CreateWindow(WNDCLASS_BUTTON, "确", WS_CHILD|BS_REGULAR, 70,108,20,20,st,0,NULL);
bt_cancel = CreateWindow(WNDCLASS_BUTTON, "取", WS_CHILD|BS_REGULAR, 100,108,20,20,st,0,NULL);
ReadNetServer();
memcpy( &temp_net_server_stru, &net_server_stru, sizeof(NET_SERVER_STRU) );
if( control_symbol == FIRST_PAGE )
{
GroupOn( pGC );
SetWindowText( st1, "DNS服务器:", NULL );
SetWindowText( st2, "主机名:", NULL );
SetWindowText( st3, "SMTP服务器:", NULL );
SetWindowText( st4, "POP3服务器:", NULL );
SetWindowText( ed1, temp_net_server_stru.dns_srv, NULL );
SetWindowText( ed2, temp_net_server_stru.helo, NULL );
SetWindowText( ed3, temp_net_server_stru.smtp_srv, NULL );
SetWindowText( ed4, temp_net_server_stru.pop3_srv, NULL );
GroupOff( pGC, 1, 20, 156, 109 );
SetWindowText( bt_step, NULL, (void *)zi_down );
}
SetFocus( ed1 );
while( !quit )
{
ASIXGetMessage( &Msg, NULL, 0, 0 );
switch( Msg.message )
{
case WM_COMMAND:
if( Msg.lparam == bt_step ) //下一页、上一页
{
flag = FALSE;
if( ( control_symbol == FIRST_PAGE ) &&( flag == FALSE ) ) //当前是第一页
{
//保存第一页的内容
GetEditorStr( ed1, temp_net_server_stru.dns_srv, 40 );
GetEditorStr( ed2, temp_net_server_stru.helo, 40 );
GetEditorStr( ed3, temp_net_server_stru.smtp_srv, 40 );
GetEditorStr( ed4, temp_net_server_stru.pop3_srv, 40 );
//显示第二页
GroupOn( pGC );
SetWindowText( st1, "POP3用户名:", NULL );
SetWindowText( st2, "POP3密码:", NULL );
SetWindowText( st3, "上网帐号:", NULL );
SetWindowText( st4, "上网密码:", NULL );
SetWindowText( ed1, temp_net_server_stru.pop3_user, NULL );
SetWindowText( ed2, temp_net_server_stru.pop3_pass, NULL );
SetWindowText( ed3, temp_net_server_stru.dial_acnts, NULL );
SetWindowText( ed4, temp_net_server_stru.dial_pass, NULL );
GroupOff( pGC, 1, 20, 156, 109 );
SetWindowText( bt_step, NULL, (void *)zi_up );
SetFocus( ed1 );
control_symbol = SECOND_PAGE; //第二页
flag = TRUE;
}
else if( ( control_symbol == SECOND_PAGE ) && ( flag == FALSE ) )//当前是第二页
{
//保存第二页的内容
GetEditorStr( ed1, temp_net_server_stru.pop3_user, 40 );
GetEditorStr( ed2, temp_net_server_stru.pop3_pass, 40 );
GetEditorStr( ed3, temp_net_server_stru.dial_acnts, 40 );
GetEditorStr( ed4, temp_net_server_stru.dial_pass, 40 );
//显示第一页
GroupOn( pGC );
SetWindowText( st1, "DNS服务器:", NULL );
SetWindowText( st2, "主机名:", NULL );
SetWindowText( st3, "SMTP服务器:", NULL );
SetWindowText( st4, "POP3服务器:", NULL );
SetWindowText( ed1, temp_net_server_stru.dns_srv, NULL );
SetWindowText( ed2, temp_net_server_stru.helo, NULL );
SetWindowText( ed3, temp_net_server_stru.smtp_srv, NULL );
SetWindowText( ed4, temp_net_server_stru.pop3_srv, NULL );
GroupOff( pGC, 1, 20, 156, 109 );
SetWindowText( bt_step, NULL, (void *)zi_down );
SetFocus( ed1 );
control_symbol = FIRST_PAGE; //第一页
flag = TRUE;
}
}
if( Msg.lparam == bt_ok ) //确定
{
// 由网络使用net_server_stru
if( control_symbol == FIRST_PAGE ) //当前是第一页
{
GetEditorStr( ed1, temp_net_server_stru.dns_srv, 40 );
GetEditorStr( ed2, temp_net_server_stru.helo, 40 );
GetEditorStr( ed3, temp_net_server_stru.smtp_srv, 40 );
GetEditorStr( ed4, temp_net_server_stru.pop3_srv, 40 );
}
else if( control_symbol == SECOND_PAGE )//当前是第二页
{
GetEditorStr( ed1, temp_net_server_stru.pop3_user, 40 );
GetEditorStr( ed2, temp_net_server_stru.pop3_pass, 40 );
GetEditorStr( ed3, temp_net_server_stru.dial_acnts, 40 );
GetEditorStr( ed4, temp_net_server_stru.dial_pass, 40 );
}
memcpy( &net_server_stru, &temp_net_server_stru, sizeof(NET_SERVER_STRU) );
SaveNetServer();
quit = TRUE;
}
if( Msg.lparam == bt_cancel ) //取消
quit = TRUE;
if( Msg.lparam == kb )
{
if( kbflag == FALSE ) //无键盘
{
GroupOn( pGC );
DestroyWindow( st );
st = CreateWindow(WNDCLASS_STATIC, NULL, WS_CHILD|SS_TEXT, 1,107,66,101,mainwin,0,NULL);
keyboard = CreateWindow( WNDCLASS_KEYBD,NULL,WS_CHILD|KBS_PINGYING|0xff,1,144,158,70,st,0,NULL);
bt_step = CreateWindow(WNDCLASS_BUTTON, NULL, WS_CHILD|BS_REGULAR, 40,108,20,20,st,0,NULL);
bt_ok = CreateWindow(WNDCLASS_BUTTON, "确", WS_CHILD|BS_REGULAR, 70,108,20,20,st,0,NULL);
bt_cancel = CreateWindow(WNDCLASS_BUTTON, "取", WS_CHILD|BS_REGULAR, 100,108,20,20,st,0,NULL);
if( control_symbol == FIRST_PAGE ) //当前是第一页
{
SetWindowText( st1, "DNS服务器:", NULL );
SetWindowText( st2, "主机名:", NULL );
SetWindowText( st3, "SMTP服务器:", NULL );
SetWindowText( st4, "POP3服务器:", NULL );
SetWindowText( ed1, temp_net_server_stru.dns_srv, NULL );
SetWindowText( ed2, temp_net_server_stru.helo, NULL );
SetWindowText( ed3, temp_net_server_stru.smtp_srv, NULL );
SetWindowText( ed4, temp_net_server_stru.pop3_srv, NULL );
SetWindowText( bt_step, NULL, (void *)zi_down );
}
else if( control_symbol == SECOND_PAGE )//当前是第二页
{
SetWindowText( st1, "POP3用户名:", NULL );
SetWindowText( st2, "POP3密码:", NULL );
SetWindowText( st3, "上网帐号:", NULL );
SetWindowText( st4, "上网密码:", NULL );
SetWindowText( ed1, temp_net_server_stru.pop3_user, NULL );
SetWindowText( ed2, temp_net_server_stru.pop3_pass, NULL );
SetWindowText( ed3, temp_net_server_stru.dial_acnts, NULL );
SetWindowText( ed4, temp_net_server_stru.dial_pass, NULL );
SetWindowText( bt_step, NULL, (void *)zi_up );
}
GroupOff( pGC, 1, 20, 156, 218 );
SetFocus( ed1 );
kbflag = TRUE;
}else{ //有键盘
GroupOn( pGC );
DestroyWindow( st );
st = CreateWindow(WNDCLASS_STATIC, NULL, WS_CHILD|SS_TEXT, 1,107,66,101,mainwin,0,NULL);
st5 = CreateWindow(WNDCLASS_STATIC, NULL, WS_CHILD|SS_TEXT, 1,108,66,20,st,0,NULL);
st6 = CreateWindow(WNDCLASS_STATIC, NULL, WS_CHILD|SS_TEXT, 1,130,66,20,st,0,NULL);
st7 = CreateWindow(WNDCLASS_STATIC, NULL, WS_CHILD|SS_TEXT, 1,152,66,20,st,0,NULL);
st8 = CreateWindow(WNDCLASS_STATIC, NULL, WS_CHILD|SS_TEXT, 1,174,66,20,st,0,NULL);
ed5 = CreateWindow(WNDCLASS_EDITOR, NULL, WS_CHILD|ES_SINGLE_REGULAR, 69,108,88,20,st,40,NULL);
ed6 = CreateWindow(WNDCLASS_EDITOR, NULL, WS_CHILD|ES_SINGLE_REGULAR, 69,130,88,20,st,40,NULL);
ed7 = CreateWindow(WNDCLASS_EDITOR, NULL, WS_CHILD|ES_SINGLE_REGULAR, 69,152,88,20,st,40,NULL);
ed8 = CreateWindow(WNDCLASS_EDITOR, NULL, WS_CHILD|ES_SINGLE_REGULAR, 69,174,88,20,st,40,NULL);
bt_ok = CreateWindow(WNDCLASS_BUTTON, "确", WS_CHILD|BS_REGULAR, 50,197,20,20,st,0,NULL);
bt_cancel = CreateWindow(WNDCLASS_BUTTON, "取", WS_CHILD|BS_REGULAR, 90,197,20,20,st,0,NULL);
if( control_symbol == FIRST_PAGE ) //当前是第一页
{
GetEditorStr( ed1, temp_net_server_stru.dns_srv, 40 );
GetEditorStr( ed2, temp_net_server_stru.helo, 40 );
GetEditorStr( ed3, temp_net_server_stru.smtp_srv, 40 );
GetEditorStr( ed4, temp_net_server_stru.pop3_srv, 40 );
}
else if( control_symbol == SECOND_PAGE )//当前是第二页
{
GetEditorStr( ed1, temp_net_server_stru.pop3_user, 40 );
GetEditorStr( ed2, temp_net_server_stru.pop3_pass, 40 );
GetEditorStr( ed3, temp_net_server_stru.dial_acnts, 40 );
GetEditorStr( ed4, temp_net_server_stru.dial_pass, 40 );
}
SetWindowText( st1, "DNS服务器:", NULL );
SetWindowText( st2, "主机名:", NULL );
SetWindowText( st3, "SMTP服务器:", NULL );
SetWindowText( st4, "POP3服务器:", NULL );
SetWindowText( ed1, temp_net_server_stru.dns_srv, NULL );
SetWindowText( ed2, temp_net_server_stru.helo, NULL );
SetWindowText( ed3, temp_net_server_stru.smtp_srv, NULL );
SetWindowText( ed4, temp_net_server_stru.pop3_srv, NULL );
SetWindowText( st5, "POP3用户名:", NULL );
SetWindowText( st6, "POP3密码", NULL );
SetWindowText( st7, "上网帐号:", NULL );
SetWindowText( st8, "上网密码:", NULL );
SetWindowText( ed5, temp_net_server_stru.pop3_user, NULL );
SetWindowText( ed6, temp_net_server_stru.pop3_pass, NULL );
SetWindowText( ed7, temp_net_server_stru.dial_acnts, NULL );
SetWindowText( ed8, temp_net_server_stru.dial_pass, NULL );
GroupOff( pGC, 1, 20, 156, 218 );
kbflag = FALSE;
}
}
break;
case WM_QUIT:
quit = TRUE;
break;
default:
break;
}
DefWindowProc( Msg.message, Msg.lparam, Msg.data, Msg.wparam );
}
DestroyWindow( mainwin );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -