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

📄 msgdlg.cpp

📁 基于WINCE
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		memcpy(sbuffer,(*buf).Date,18);
		MyTrim(sbuffer,18);
		m_ListCtrl.SetItemText(iPos,2,sbuffer);

		memcpy(sbuffer,(*buf).Datee,12);
		MyTrim(sbuffer,12);
		m_ListCtrl.SetItemText(iPos,3,sbuffer);

		memcpy(sbuffer,(*buf).IndexForDelNew,6);
	    MyTrim(sbuffer,6);
		m_ListCtrl.SetItemText(iPos,4,sbuffer);

		memcpy(sbuffer,(*buf).MsgContent,144);
		MyTrim(sbuffer,144);
		m_ListCtrl.SetItemText(iPos,5,sbuffer);
		
		nextpstr=StrList;//nextpstr是显示完毕一页后剩下的短信

		j++;
		if(j==9)//首页显示9条短信
			break;
	}
	if(pagesign==0)
	{
		signjjj++;
	}
	else if(pagesign==1)
	{
		signjjj--;
	CString k;
	k.Format(TEXT("%s%d"),k,signjjj);
	//MessageBox(k,TEXT("else if(pagesign==1)结束时signjjj"),MB_OK);
	}
	else if(pagesign==2)
	{
		signjjj=OnLastpage;
	
	}
	else if(pagesign==3)
	{
		signjjj=1;
	
	}
CString kk;
kk.Format(TEXT("%s%d"),kk,signjjj);
//MessageBox(kk,TEXT("signjjj"),MB_OK);
}
void CMsgDlg::OnNext() //向后
{
CString gggg;
gggg.Format(_T("%s%d"),gggg,signjjj);

	pagesign=0;//标志:翻下一页
	CString s2=openfile();
	int a=0;
	int Msgnum=0;
	int Len2=0;
	while((a=s2.Find(TEXT("\r\n"),a)) != -1)
	{	
		Msgnum++;//得出短信的总数目
		a+=2;
	}
CString kk;
kk.Format(TEXT("%s%d"),kk,signjjj);
//MessageBox(kk,TEXT("OnNext后来 signjjj"),MB_OK);//9
	//i来的

	int page=Msgnum/9;//页目
	int pageodd=Msgnum%9;//来的
	
	if(page!=0&&pageodd!=0)//表不是整页
	{
		MessageBox(TEXT("进入if(pageodd!=0)"),TEXT("content"),MB_OK);

		if(signjjj<=page)
		{
			int didaiij=signjjj*9;
			for(int k=0;k<didaiij;k++)
			{
				if(s2.Find(TEXT("\r\n"),Len2) != -1)
				{
					Len2=s2.Find(TEXT("\r\n"),Len2);
					Len2+=2;
				}
			}
			int Len3=s2.GetLength()-Len2;
			UpdateData(0);
			m_ListCtrl.DeleteAllItems();
			DisplayEveryList(s2.Right(Len3));
		}
		else 
		{
		}
	}
	else if(page==0||Msgnum==9||pagesign==2)//表则无操作
	{
	}
	else//所有情况下
	{
		//MessageBox(TEXT("进入if(pageodd=0)"),TEXT("content"),MB_OK);

		if(signjjj<page)
		{
			int didaiik=signjjj*9;
			for(int k=0;k<didaiik;k++)
			{
				if(s2.Find(TEXT("\r\n"),Len2) != -1)
				{
					Len2=s2.Find(TEXT("\r\n"),Len2);
					Len2+=2;
				}
			}
			int Len3=s2.GetLength()-Len2;
			UpdateData(0);
			m_ListCtrl.DeleteAllItems();
			DisplayEveryList(s2.Right(Len3));
		}
		else
		{
		}
	}


CString ggg;
ggg.Format(_T("%s%d"),ggg,signjjj);
//MessageBox(ggg,TEXT("OnNext结束时的 signjjj"),MB_OK);//如果在第三页显示2
}

CString CMsgDlg::openfile()//”向后“等按键调用此函数
{
	//AfxMessageBox(TEXT("进入 openfile"),MB_OK);
	CString s;
	DWORD FileLen,FileLen1;
	TCHAR data[4096];
	int leN=0;
	TCHAR BUF;
	HANDLE file;
	//file=CreateFile (TEXT_READ, FILE_SHARE_WRITE , NULL, OPEN_EXISTING, 0, NULL);
	
	//2006/3/30将上面句
	file=CreateFile (TEXT("\\Storage Card\\SaveMsg.txt"), GENERIC_READ, FILE_SHARE_READ , NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL);
	BY_HANDLE_FILE_INFORMATION bhfi;
	GetFileInformationByHandle(file,&bhfi);
	FileLen=bhfi.nFileSizeLow;
CString gg;
gg.Format(_T("%s%ul"),gg,FileLen);
//MessageBox(gg,TEXT("FileLen"),MB_OK);//第一次1904(),
	for(DWORD len=FileLen;len>0;len-=2)
	{

		ReadFile(file,&BUF,2,&FileLen1,NULL);
		data[leN] = BUF;
		data[leN+1] = '\0';
		leN++;
	}
	TCHAR *abc=data;
	s=abc;
	CloseHandle(file);
//s的内容00755500 15/12/30,10:21 01 中国aa11
//MessageB),MB_OK);
	return s;

}

void CMsgDlg::OnLast() //最后一页
{
	// TODO: Add your control notification handler code here
CString g;
g.Format(_T("%s%d"),g,signjjj);
//MessageBox(g,TEXT("OnLast()开始时的 signjjj"),MB_OK);
	CString s1=openfile();

	int a=0;
	int Msgnum=0;
	int Len2=0;
	while((a=s1.Find(TEXT("\r\n"),a)) != -1)//当有短信存在时每找到一次 \r\n Msgnum++
	{	
		Msgnum++;
		a+=2;
	}


//	m_int=Msgnum;
	OnLastpage=Msgnum/9;
	int result=Msgnum%9;
	if(result!=0)
	{
		OnLastpage+=1;
	}
	else if(result==0)
	{
		OnLastpage=OnLastpage;
	}

//	m_new=result;

	if(result!=0)//不是整页的情况
	{
		for(int k=0;k<(Msgnum-result);k++)//11-2=9表示前面共有几条短信
		{	
			if(s1.Find(TEXT("\r\n"),Len2) != -1)
			{
				Len2=s1.Find(TEXT("\r\n"),Len2);
				Len2+=2;
			}
		}
		int Len3=s1.GetLength()-Len2;
		UpdateData(0);
		m_ListCtrl.DeleteAllItems();
		//nextpasi=1;

		pagesign=2;
	CString ggg;
	ggg.Format(_T("%s%d"),ggg,Msgnum);
	//MessageBox(ggg,TEXT("Msgnum"),MB_OK);
		Msgnumnext=Msgnum;
		DisplayEveryList(s1.Right(Len3));
	}
	else//最后一页是整页短信
	{
		for(int k=0;k<(Msgnum-9);k++)//Msgnum是短信总数目,Msgnum-9表示前面所有的整页数
		{	
			if(s1.Find(TEXT("\r\n"),Len2) != -1)
			{
				 Len2=s1.Find(TEXT("\r\n"),Len2);
				 Len2+=2;
			}
		}
		int Len3=s1.GetLength()-Len2;
		UpdateData(0);
		m_ListCtrl.DeleteAllItems();
		//nextpasi=1;
		pagesign=2;
		Msgnumnext=Msgnum;
		DisplayEveryList(s1.Right(Len3));
	}
CString gg;
gg.Format(_T("%s%d"),gg,signjjj);
//MessageBox(gg,TEXT("OnLast()结束时的 signjjj"),MB_OK);
		
}

void CMsgDlg::OnFirst() //第一页
{
	// TODO: Add your control notification handler code here
	
	m_ListCtrl.DeleteAllItems();
	//signjjj=0;
	pagesign=3;
	DisplayListItems();
	
	//DisplayListItems();
}



void CMsgDlg::OnPrevious() //向前
{
CString ggg;
ggg.Format(_T("%s%d"),ggg,signjjj);
//MessageBox(ggg,TEXT("OnPrevious signjjj"),MB_OK);//如果在第三页显示2
	
	CString s2=openfile();
	int a=0;
	int Msgnum=0;
	int Len2=0;
	while((a=s2.Find(TEXT("\r\n"),a)) != -1)
	{	
		Msgnum++;//得出短信的总数目
		a+=2;
	}

	int page=Msgnum/9;
	int pageodd=Msgnum%9;

	if(page==0||Msgnum==9||pagesign==3)//只有也无动作
	{
		pagesign=1;
	}
	else if(signjjj==1)//如果的付值
	{
		pagesign=1;
	}
	else//不
	{
		pagesign=1;
		int didail=(signjjj-2)*9;
		for(int k=0;k<didail;k++)
		{
			if(s2.Find(TEXT("\r\n"),Len2) != -1)
			{
				Len2=s2.Find(TEXT("\r\n"),Len2);
				Len2+=2;
			}
		}
		int Len3=s2.GetLength()-Len2;
		UpdateData(0);
		m_ListCtrl.DeleteAllItems();
		//signjjj-=pageodd;
		//signjjj+=9;
		DisplayEveryList(s2.Right(Len3));
		//DisplayEveryList(s2.Left(Len3));
	}
CString gggg;
gggg.Format(_T("%s%d"),gggg,signjjj);

}

void CMsgDlg::DeleteMsg()
{

CString j;
j.Format(TEXT("%s%d"),j,iStatee);
//MessageBox(j,TEXT("第二次显示iStatee"),MB_OK);
	m_ListCtrl.DeleteItem(iStatee);
//MessageBox(TEXT("m_ListCtrl.DeleteItem(iStatee)结束"),MB_OK);
	UpdateData(0);
//MessageBox(TEXT("UpdateData(0)结束"),MB_OK);
}

void CMsgDlg::OnHow() 
{
	// TODO: Add your control notification handler code here
	TCHAR Atcmgl0[12]=TEXT("at+cmgl=0\r\n");//at+cmgl=0表示收到的未读短信 
	SendAtCommand(Atcmgl0,12);
	Sleep(1000);//6000->1000
	ReadData();
	MessageBox(m_strRXData,TEXT("m_strRXData_FIRST"),MB_OK);

}

void CMsgDlg::OnReset() 
{
//MessageBox(TEXT("ENTER OnShiyan"),TEXT("content"),MB_OK);
	TCHAR CPMSA[13]=TEXT("at+cpms=sm\r\n");//定义的是UNICODE(16 bit) 字符
	SendAtCommand(CPMSA,13);
	Sleep(500);//4000->200
	TCHAR CMGDA[12]=TEXT("at+cmgd=1\r\n");
	SendAtCommand(CMGDA,12);
	Sleep(500);

	TCHAR CPMSB[13]=TEXT("at+cpms=sm\r\n");//定义符
	SendAtCommand(CPMSB,13);
	Sleep(500);
	TCHAR CMGDB[12]=TEXT("at+cmgd=2\r\n");//200ms第二条没有删掉
	SendAtCommand(CMGDB,12);
	Sleep(500);

	TCHAR CPMSC[13]=TEXT("at+cpms=sm\r\n");//定义的字符
	SendAtCommand(CPMSC,13);
	Sleep(500);
	TCHAR CMGDC[12]=TEXT("at+cmgd=3\r\n");//200ms第二条没有删掉
	SendAtCommand(CMGDC,12);
	Sleep(500);

	TCHAR CPMSD[13]=TEXT("at+cpms=sm\r\n");//定义的是UNICODE(16 bit) 字符
	SendAtCommand(CPMSD,13);
	Sleep(500);
	TCHAR CMGDD[12]=TEXT("at+cmgd=4\r\n");//200ms第二条没有删掉
	SendAtCommand(CMGDD,12);
	Sleep(500);

//MessageBox(TEXT("删除结束"),TEXT("content"),MB_OK);
}



void CMsgDlg::OnShiyan() 
{
	// TODO: Add your control notification handler code here
	CString filetext=openfile();
MessageBox(filetext,TEXT("OnShiyan()  filetext"),MB_OK);
	//long b=filetext.Find(TEXT("\r\n"),playposfin);//找到下一个结尾标志
	CString nextfile=filetext.Mid(119,119);
MessageBox(nextfile,TEXT("OnShiyan() nextfile"),MB_OK);
}

void CMsgDlg::OnButton10() 
{
	// TODO: Add your control notification handler code here
		CString filetext=openfile();
MessageBox(filetext,TEXT("OnShiyan()  filetext"),MB_OK);
	//long b=filetext.Find(TEXT("\r\n"),playposfin);//找到下一个结尾标志
	CString first=filetext.Left(119);
MessageBox(first,TEXT("OnShiyan() first"),MB_OK);
	CString second=filetext.Mid(119,119);
MessageBox(second,TEXT("OnShiyan() second"),MB_OK);
	CString third=filetext.Mid(238,119);
MessageBox(third,TEXT("OnShiyan() third"),MB_OK);
	
}



void CMsgDlg::OnSend() 
{
	// TODO: Add your control notification handler code here


}

⌨️ 快捷键说明

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