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

📄 smsh.c

📁 国家ASIC工程中心使用的嵌入式操作系统
💻 C
📖 第 1 页 / 共 5 页
字号:
										SetWindowText(property[i], NULL, NULL); 
									}
								}
							}
							else			//当前列表为降序时
							{
								for(i=0; i<HIS_DISP_MAX; i++)		//更新列表显示
								{
									if(i < listnum)		//数组没结束时显示,否则后面列表为空
									{
										if(strlen((*(nowlist2 + i))->name) == 0)
										{
											if(strlen((*(nowlist2 + i))->sms.number) != 0)
												SetWindowText(history[i], (*(nowlist2 + i))->sms.number, NULL); 
											else
												SetWindowText(history[i], "未写完短信", NULL); 
										}
										else
										{
											SetWindowText(history[i], (*(nowlist2 + i))->name, NULL); 
										}
										switch(*((*(nowlist2 + i))->flag))
										{
											case '1':				//未读短信
												SetWindowText(property[i], NULL, (char *)zi_weidu); 
												break; 
											case '2':				//已读短信
												SetWindowText(property[i], NULL, (char *)zi_yidu); 
												break; 
											case '3':				//发送短信
												SetWindowText(property[i], NULL, (char *)zi_yifasong); 
												break; 
										}
									}
									else
									{
										SetWindowText(history[i], "", NULL);
										SetWindowText(property[i], NULL, NULL); 
									}
								}
							}
							SetWindowText(man, "", NULL); 
							SetWindowText(time, "", NULL); 
							no = -1; 
							SetScrollRange(vscroll, 1, (U16)(length - HIS_DISP_MAX + 1));		//重新设置滚动条长度,并定位到最顶端
							SetScrollPos(vscroll, 1, 0, 0); 
							row = 1;		//偏移量也置为1
							break;
						case 2:							//显示发送列表
							if(strcmp(nowflag, SMS_SEND))			//当当前列表不是未读列表时,设定当前列表为未读列表,并读取
							{
								for(i=0; i<listnum; i++)		//释放结构列表的空间
								{
									Lfree(nowlist[i]); 
								}
								LoadHistory(SMS_SEND, &listnum, nowlist); 
								strcpy(nowflag, SMS_SEND); 
							}
							else
								break; 
							length = HIS_DISP_MAX; 
							if(listnum >= HIS_DISP_MAX)			//判断新列表是否需要滚动条
							{
								length = listnum; 
							}
							for(i=0; i<listnum; i++)		//创建逆向列表
							{
								nowlist2[i] = nowlist[listnum - i - 1]; 
							}
							if(orderflag == UP)				//当前排序为升序时
							{
								for(i=0; i<HIS_DISP_MAX; i++)		//更新列表显示
								{
									if(i < listnum)		//数组没结束时,显示,否则后面列表为空
									{
										if(strlen((*(nowlist + i))->name) == 0)
										{
											if(strlen((*(nowlist + i))->sms.number) != 0)
												SetWindowText(history[i], (*(nowlist + i))->sms.number, NULL); 
											else
												SetWindowText(history[i], "未写完短信", NULL); 
										}
										else
										{
											SetWindowText(history[i], (*(nowlist + i))->name, NULL); 
										}
										switch(*((*(nowlist + i))->flag))
										{
											case '1':				//未读短信
												SetWindowText(property[i], NULL, (char *)zi_weidu); 
												break; 
											case '2':				//已读短信
												SetWindowText(property[i], NULL, (char *)zi_yidu); 
												break; 
											case '3':				//发送短信
												SetWindowText(property[i], NULL, (char *)zi_yifasong); 
												break; 
										}
									}
									else
									{
										SetWindowText(history[i], "", NULL);
										SetWindowText(property[i], NULL, NULL); 
									}
								}
							}
							else				//当前排序为降序时
							{
								for(i=0; i<HIS_DISP_MAX; i++)		//更新列表显示
								{
									if(i < listnum)		//数组没结束时,显示,否则后面列表为空
									{
										if(strlen((*(nowlist2 + i))->name) == 0)
										{
											if(strlen((*(nowlist2 + i))->sms.number) != 0)
												SetWindowText(history[i], (*(nowlist2 + i))->sms.number, NULL); 
											else
												SetWindowText(history[i], "未写完短信", NULL); 
										}
										else
										{
											SetWindowText(history[i], (*(nowlist2 + i))->name, NULL); 
										}
										switch(*((*(nowlist2 + i))->flag))
										{
											case '1':				//未读短信
												SetWindowText(property[i], NULL, (char *)zi_weidu); 
												break; 
											case '2':				//已读短信
												SetWindowText(property[i], NULL, (char *)zi_yidu); 
												break; 
											case '3':				//发送短信
												SetWindowText(property[i], NULL, (char *)zi_yifasong); 
												break; 
										}
									}
									else
									{
										SetWindowText(history[i], "", NULL);
										SetWindowText(property[i], NULL, NULL); 
									}
								}
							}
							SetWindowText(man, "", NULL); 
							SetWindowText(time, "", NULL); 
							no = -1; 
							SetScrollRange(vscroll, 1, (U16)(length - HIS_DISP_MAX + 1));		//重新设置滚动条长度,并定位到最顶端
							SetScrollPos(vscroll, 1, 0, 0); 
							row = 1;		//偏移量也置为1
							break;
						case 3:							//全部列表
							if(strcmp(nowflag, SMS_ALL))			//当当前列表不是未读列表时,设定当前列表为未读列表,并读取
							{
								for(i=0; i<listnum; i++)		//释放结构列表的空间
								{
									Lfree(nowlist[i]); 
								}
								LoadHistory(SMS_ALL, &listnum, nowlist); 
								strcpy(nowflag, SMS_ALL); 
							}
							else
								break; 
							length = HIS_DISP_MAX; 
							if(listnum >= HIS_DISP_MAX)			//判断新列表是否需要滚动条
							{
								length = listnum; 
							}
							for(i=0; i<listnum; i++)		//创建逆向列表
							{
								nowlist2[i] = nowlist[listnum - i - 1]; 
							}
							if(orderflag == UP)				//当前排序为升序时
							{
								for(i=0; i<HIS_DISP_MAX; i++)		//更新列表显示
								{
									if(i < listnum)		//数组没结束时显示,否则后面列表为空
									{
										if(strlen((*(nowlist + i))->name) == 0)
										{
											if(strlen((*(nowlist + i))->sms.number) != 0)
												SetWindowText(history[i], (*(nowlist + i))->sms.number, NULL); 
											else
												SetWindowText(history[i], "未写完短信", NULL); 
										}
										else
										{
											SetWindowText(history[i], (*(nowlist + i))->name, NULL); 
										}
										switch(*((*(nowlist + i))->flag))
										{
											case '1':				//未读短信
												SetWindowText(property[i], NULL, (char *)zi_weidu); 
												break; 
											case '2':				//已读短信
												SetWindowText(property[i], NULL, (char *)zi_yidu); 
												break; 
											case '3':				//发送短信
												SetWindowText(property[i], NULL, (char *)zi_yifasong); 
												break; 
										}
									}
									else
									{
										SetWindowText(history[i], "", NULL);
										SetWindowText(property[i], NULL, NULL); 
									}
								}
							}
							else				//当前排序为降序时
							{
								for(i=0; i<HIS_DISP_MAX; i++)		//更新列表显示
								{
									if(i < listnum)		//数组没结束时显示,否则后面列表为空
									{
										if(strlen((*(nowlist + i))->name) == 0)
										{
											if(strlen((*(nowlist2 + i))->sms.number) != 0)
												SetWindowText(history[i], (*(nowlist2 + i))->sms.number, NULL); 
											else
												SetWindowText(history[i], "未写完短信", NULL); 
										}
										else
										{
											SetWindowText(history[i], (*(nowlist2 + i))->name, NULL); 
										}
										switch(*((*(nowlist2 + i))->flag))
										{
											case '1':				//未读短信
												SetWindowText(property[i], NULL, (char *)zi_weidu); 
												break; 
											case '2':				//已读短信
												SetWindowText(property[i], NULL, (char *)zi_yidu); 
												break; 
											case '3':				//发送短信
												SetWindowText(property[i], NULL, (char *)zi_yifasong); 
												break; 
										}
									}
									else
									{
										SetWindowText(history[i], "", NULL);
										SetWindowText(property[i], NULL, NULL); 
									}
								}
							}
							SetWindowText(man, "", NULL); 
							SetWindowText(time, "", NULL); 
							no = -1; 
							SetScrollRange(vscroll, 1, (U16)(length - HIS_DISP_MAX + 1));		//重新设置滚动条长度,并定位到最顶端
							SetScrollPos(vscroll, 1, 0, 0); 
							row = 1;		//偏移量也置为1
							break; 
					}
				}
				break; 

			case WM_COMMAND:
				if(msg.lparam == ssearch)			//点击高级搜索按钮
				{
					for(i=0; i<listnum; i++)		//释放结构列表的空间
					{
						Lfree(nowlist[i]); 
					}
					searchprev = searchnow;			//记录刚才的搜索列表
					searchnow = SupSearch(&listnum, nowlist);		//返回结果链表,listnum是链表的长度
					
					if((searchnow == NULL) || (searchnow->searchtype == -1))			//判断是否进行了搜索,当没有进行搜索时
					{
						if(strcmp(nowflag, SMS_SEARCH))		//当刚才的列表类型不是为查找类型时
						{
							LoadHistory(nowflag, &listnum, nowlist);		//按刚才的列表类型重新读入
//							break; 
						}
						else			//刚才列表类型是查找类型时
						{
							searchlist = LocalFindRecord(lacb, SMSH_NAME_FIELD, searchprev->keyword, searchprev->searchtype );		//通过上一次的有效查找的记录重新查找
							searchnow = searchprev;					//当前查找记录依然是刚才的查找记录
							for(i=0; i<listnum; i++)
							{
								Lfree(nowlist[i]); 
							}
							listnum = searchlist->num;				//刚才列表的个数
//							if(i != listnum)
//								Lfree(nowlist); 
							GetSMSList(nowlist, listnum, searchlist);		//重新读入列表
//							break; 
						}
					}
					else			//进行了有效的搜索,更新显示
					{
						strcpy(nowflag, SMS_SEARCH); 
					}
					length = HIS_DISP_MAX; 
					if(listnum >= HIS_DISP_MAX)			//判断新列表是否需要滚动条
					{
						length = listnum; 
					}
					for(i=0; i<listnum; i++)		//创建逆向列表
					{
						nowlist2[i] = nowlist[listnum - i - 1]; 
					}
					if(orderflag == UP)				//当前排序为升序时
					{
						for(i=0; i<HIS_DISP_MAX; i++)		//更新列表显示
						{
							if(i < listnum)		//数组没结束时,显示发信人名称,否则后面列表为空
								{
									if(strlen((*(nowlist + i))->name) == 0)
									{
										if(strlen((*(nowlist + i))->sms.number) != 0)
											SetWindowText(history[i], (*(nowlist + i))->sms.number, NULL); 
										else
											SetWindowText(history[i], "未写完短信", NULL); 
									}
									else
									{
										SetWindowText(history[i], (*(nowlist + i))->name, NULL); 
									}
									switch(*((*(nowlist + i))->flag))
									{
										case '1':				//未读短信
											SetWindowText(property[i], NULL, (char *)zi_weidu); 
											break; 
										case '2':				//已读短信
											SetWindowText(property[i], NULL, (char *)zi_yidu); 
											break; 
										case '3':				//发送短信
											SetWindowText(property[i], NULL, (char *)zi_yifasong); 
											break; 
									}
								}
								else
								{
									SetWindowText(history[i], "", NULL);
									SetWindowText(property[i], NULL, NULL); 
								}
							}
						}
						else				//当前排序为降序时
						{
							for(i=0; i<HIS_DISP_MAX; i++)		//更新列表显示
							{
								if(i < listnum)		//数组没结束时,显示,否则后面列表为空
									{
										if(strlen((*(nowlist2 + i))->name) == 0)
										{
											if(strlen((*(nowlist2 + i))->sms.number) != 0)
												SetWindowText(history[i], (*(nowlist2 + i))->sms.number, NULL); 
											else
												SetWindowText(history[i], "未写完短信", NULL); 
										}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -