⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 emlfunc.c

📁 国家ASIC工程中心使用的嵌入式操作系统
💻 C
📖 第 1 页 / 共 4 页
字号:
/***********************************************************************************************/
//按时间查询
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 + -