📄 msgdlg.cpp
字号:
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 + -