?? msgdlg.cpp
字號:
qiposition=m_strRXData.Find(L"+CMGL",iGet_Cmgl0_Position);//2006/4/3
if(CC=="+CMGL")
{
MsgPosition=m_strRXData.Find(L"\r\n",qiposition)+2;//Position是+CMGL的位置,MsgPosition是0891..開始位置
MsgChange(MsgPosition,_T("未讀"));
CC.Empty();
TCHAR CMGD[12]=TEXT("at+cmgd=1\r\n");
SendAtCommand(CMGD,12);
Sleep(200);
}
CDialog::OnTimer(nIDEvent);
}
void CMsgDlg::OnDelete() //刪除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除
{
Index=m_ListCtrl.GetItemText(IndexInFieldList2,4); //CString Index;
//MessageBox(Index,TEXT("OnDelete()Index"),MB_OK);
if(Index=="")
{
MessageBox(TEXT("沒有選擇項目,請重新點擊"),TEXT("提示"),MB_OK);
}
else
{
DelogDialog diadel;
if(diadel.DoModal()==IDOK)
{
//MessageBox(TEXT("進入刪除"),TEXT("提示"),MB_OK);
DelFileLine(Index);
}
}
//SetTimer(1,3000,NULL);20061/10暫時刪除20061/10暫時刪除20061/10暫時刪除20061/10暫時刪除暫時刪除20061/10暫時刪除20061/10暫時刪除
}
void CMsgDlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
m_ListCtrl.SetFocus();
POSITION pos2;
pos2 = m_ListCtrl.GetFirstSelectedItemPosition();
IndexInFieldList2 = m_ListCtrl.GetNextSelectedItem(pos2); //int IndexInFieldList2;
iStatee=IndexInFieldList2;
Index=m_ListCtrl.GetItemText(IndexInFieldList2,4); //CString Index;
content= m_ListCtrl.GetItemText(IndexInFieldList2, 5);//在MSGDLG.H中定義int IndexInFieldList2
content_phone=m_ListCtrl.GetItemText(IndexInFieldList2, 0);
content_date =m_ListCtrl.GetItemText(IndexInFieldList2, 2);
content_time =m_ListCtrl.GetItemText(IndexInFieldList2, 3);
//MessagXT("content"),MB_OK);
CString display;
display=content;
CString ss=openfile();
CPLAY *dlg=new CPLAY;
CMsgDlg *dlgg=this;
dlg->dlggg=dlgg;
dlg->m_Msgcontent=content;
dlg->m_Msgcontent_phone=content_phone;
dlg->m_Msgcontent_date=content_date;
dlg->m_Msgcontent_time=content_time;
dlg->m_MsgIndex=Index;//將
dlg->m_Msgcontent_index=Index;
dlg->playposfin=posfinish;
dlg->m_wholefile=ss;
dlg->Create(IDD_DIALOG3);
dlg->ShowWindow(SW_SHOW);
m_ListCtrl.SetItemText(IndexInFieldList2,1,TEXT("已讀"));
chasta(Index);
*pResult = 0;
}
void CMsgDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) //list
{
m_ListCtrl.SetFocus();
POSITION pos2;
pos2 = m_ListCtrl.GetFirstSelectedItemPosition();
IndexInFieldList2 = m_ListCtrl.GetNextSelectedItem(pos2); //int IndexInFieldList2;
iStatee=IndexInFieldList2;
Index=m_ListCtrl.GetItemText(IndexInFieldList2,4); //CString Index;
CString zanIndex=" "+Index+" ";
CString wholefile=openfile();
long posIndex=wholefile.Find(zanIndex,0);
CString kk;
kk.Format(TEXT("%s%d"),kk,posIndex);
//MessageBox(kk,TEXT("posIndex"),MB_OK);
posfinish=wholefile.Find(TEXT("\r\n"),posIndex)+2;
CString kkk;
kkk.Format(TEXT("%s%d"),kkk,posfinish);
//MessageBox(kkk,TEXT("posfinish"),MB_OK);//點擊第一條顯示119,
if(Index=="")
{
//MessageBox(TEXT("沒有選擇項目,請重新點擊"),TEXT("提示"),MB_OK);
}
//MessageBox(Index,TEXT("OnClickList1中的Index"),MB_OK);
*pResult = 0;
}
void CMsgDlg::OnShowMessage() //查看查看查看查看查看查看查看查看查看查看查看查看查看查看查看查看
{
// TODO: Add your control notification handler code here
//MessageBox(m_ListCtrl,TEXT("查看m_ListCtrl"),MB_OK);
Index=m_ListCtrl.GetItemText(IndexInFieldList2,4); //CString Index;
//MessageBox(Index,TEXT("OnShowMessage ()Index"),MB_OK);
content= m_ListCtrl.GetItemText(IndexInFieldList2, 5);//在MSGDLG.H中定義int IndexInFieldList2
content_phone=m_ListCtrl.GetItemText(IndexInFieldList2, 0);
content_date =m_ListCtrl.GetItemText(IndexInFieldList2, 2);
content_time =m_ListCtrl.GetItemText(IndexInFieldList2, 3);
//MessageBox(content,TEXT("content"),MB_OK);
CString display;
display=content;
CString ss=openfile();
// MessageBox(ss,TEXT("OnShowMessage() ss"),MB_OK);//這個顯示也正確
//2006/3/30暫時屏蔽
CPLAY *dlg=new CPLAY;
CMsgDlg *dlgg=this;
dlg->dlggg=dlgg;
dlg->m_Msgcontent=content;
dlg->m_Msgcontent_phone=content_phone;
dlg->m_Msgcontent_date=content_date;
dlg->m_Msgcontent_time=content_time;
dlg->m_MsgIndex=Index;//將第幾條的條數傳給PLAY類
dlg->m_Msgcontent_index=Index;
dlg->playposfin=posfinish;
dlg->m_wholefile=ss;
dlg->Create(IDD_DIALOG3);
dlg->ShowWindow(SW_SHOW);
m_ListCtrl.SetItemText(IndexInFieldList2,1,TEXT("已讀"));
chasta(Index);//函數chasta實現修改文件狀態(tài)屬性
}
void CMsgDlg::chasta(CString chaindex)
{
//MessageBox(chaindex,TEXT("chaindex"),MB_OK); //點擊第四條短信,顯示04
//點擊第二條短信,顯示02
//AfxMessageBox(TEXT("進入 DelFileLine"),MB_OK);
CString s,y;
DWORD FileLen,FileLen1;
TCHAR data[4096];
int leN=0;
TCHAR BUF;
HANDLE file;
file=CreateFile (TEXT("\\Storage Card\\SaveMsg.txt"), GENERIC_READ, FILE_SHARE_WRITE , NULL, OPEN_EXISTING, 0, NULL);
BY_HANDLE_FILE_INFORMATION bhfi;//bhfi是結構體BY_HANDLE_FILE_INFORMATION的變量
GetFileInformationByHandle(file,&bhfi);
FileLen=bhfi.nFileSizeLow;
for(DWORD len=FileLen;len>0;len-=2)
{
ReadFile(file,&BUF,2,&FileLen1,NULL);//file指向上面創(chuàng)建的文件
data[leN] = BUF;//上面定義TCHAR BUF
data[leN+1] = '\0';
leN++;
}
//MessageBox(data,TEXT("data"),MB_OK);//點擊第四條短信,顯示所有的短信
//點擊第二條短信,顯示所有的短信
TCHAR *abc=data;
s=abc;
//MessageBox(s,TEXT("s"),MB_OK); //點擊第四條短信,顯示所有的短信
int total=s.GetLength();
CString newStr;
CString string1;
newStr=TEXT(" ")+chaindex+TEXT(" ");//
//MessageBox(newStr,TEXT("newStr"),MB_OK);//點擊第四條短信,顯
int length1=s.Find(newStr);
int length2=length1-43;//////////////////////////////////////////////////////////////////////////////////////////
CString yyy;
yyy.Format(TEXT("%s%d"),yyy,length2);
//MessageBox(yyy,TEXT("length2"),MB_OK);//length2是這條短信前面的所有短信的長度,點擊第四條短信,顯示164
string1=s.Left(length2);
//
int length3=s.Find(TEXT("\r\n"),length1)+2;//length
CString yyyy; //lengt
yyyy.Format(TEXT("%s%d"),yyyy,length3);
//MessageBox(yyyy,TEXT("length3"),MB_OK); //點擊第四條短信,顯示259
CString change=s.Mid(length2,(length3-length2));
//MessageBox(change,TEXT("change 前"),MB_OK);
change.Replace(_T("未讀"),_T("已讀"));
//MessageBox(change,TEXT("change 后"),MB_OK);
string1+=change;
//MessageBox(string1,TEXT("change 后string1"),MB_OK);
int length4=total-length3;
CString yyyyy;
yyyyy.Format(TEXT("%s%d"),yyyyy,length4);
//MessageBox(yyyy,TEXT("length4"),MB_OK); //點擊第四條短信,顯示259
//點擊第三條短信,顯示168
//點擊第二條短信,顯示112
string1+=s.Right(length4);
//MessageBox(string1,TEXT("string1"),MB_OK);//點擊第四條短信,
//點擊第三
//點擊第二
// m_display=string1;
UpdateData(0);
CloseHandle(file);
CFile::Remove(TEXT("\\Storage Card\\SaveMsg.txt"));
int m_num2=2*string1.GetLength();
CString yyyyyy;
yyyyyy.Format(TEXT("%s%d"),yyyyyy,m_num2);
//MessageBox(yyyyy,TEXT("m_num2"),MB_OK);//點擊第二條短信,顯示58
CFile file1;
file1.Open(TEXT("\\Storage Card\\SaveMsg.txt"),CFile::modeCreate|CFile::modeWrite);
file1.Write(string1,m_num2);
file1.Close();
}
void CMsgDlg::OnQuit() //回八大模塊
{
// TODO: Add your control notification handler code here
//CFile
//OnOK();//2006/4/13
CloseHandle(hPort);
ExitProcess(NULL);
}
void CMsgDlg::DelFileLine(CString newindex)//對應"返回"按鍵,newindex即為Index
{
//MessageBox(newindex,TEXT("DelFileLine-newindex"),MB_OK); //點擊第四條短信,顯示04
//點擊第二條短信,顯示02
//AfxMessageBox(TEXT("進入 DelFileLine"),MB_OK);
CString s,y;
DWORD FileLen,FileLen1;
TCHAR data[4096];
int leN=0;
TCHAR BUF;
HANDLE file;
file=CreateFile (TEXT("\\Storage Card\\SaveMsg.txt"), GENERIC_READ, FILE_SHARE_WRITE , NULL, OPEN_EXISTING, 0, NULL);
BY_HANDLE_FILE_INFORMATION bhfi;//bhfi是結構體BY_HANDLE_FILE_INFORMATION的變量
GetFileInformationByHandle(file,&bhfi);
FileLen=bhfi.nFileSizeLow;
//MessageBox((CString)FileLen,TEXT("FileLen"),MB_OK);//點擊第四條短信,顯示方框
for(DWORD len=FileLen;len>0;len-=2)
{
ReadFile(file,&BUF,2,&FileLen1,NULL);//file指向上面創(chuàng)建的文件
data[leN] = BUF;//上面定義TCHAR BUF
//MessageBox(data,TEXT("循環(huán)內的data"),MB_OK);
data[leN+1] = '\0';
leN++;
}
//MessageBox(data,TEXT("data"),MB_OK); //信
//點擊短信
TCHAR *abc=data;
s=abc;
//MessageBox(s,TEXT("s"),MB_OK); //點擊第所有的短信
//點擊第的短信
int total=s.GetLength();
CString Y;
Y.Format(TEXT("%s%d"),Y,total);
//MessageBox(Y,TEXT("total"),MB_OK);//點擊第四條短信,顯示259
//點擊第二條短信,顯示170
CString newStr;
CString string1;
newStr=TEXT(" ")+newindex+TEXT(" ");//ne所選擇的哪條短信
//MessageBox(newStr,TEXT("newStr"),MB_OK);//點擊第四條短信,顯示04
//點擊第二條短信,顯示02
int length1=s.Find(newStr);
CString yy;
yy.Format(TEXT("%s%d"),yy,length1);
//MessageBox(yy,TEXT("length1"),MB_OK);//點擊第四條短信,顯示211
//點擊第二條短信,顯示98
int length2=length1-43;//47->43////////////////////////////////////////////////////////////////////////////
CString yyy;
yyy.Format(TEXT("%s%d"),yyy,length2);
//MessageBox(yyy,TEXT("length2"),MB_OK); //length2是這條短信前面的所有短信的長度,點擊第四條短信,顯示164
//點擊第二條短信,顯示51
string1=s.Left(length2);
//MessageBox(string1,TEXT("string1"),MB_OK);//點擊第四條短信,
//點擊第三條短信息
//點擊第信息
//string1+="\r\n";
int poss=string1.Find(TEXT("\r\n"));
CString ggg;
ggg.Format(_T("%s%d"),ggg,poss);
//MessageBox(ggg,TEXT("刪除后顯示第一條的\r\n位置"),MB_OK);
int length3=s.Find(TEXT("\r\n"),length1)+2;//lengt信的第幾條所在的位置
//lengt短信總的長度
int length4=total-length3;
CString left1=s.Right(length4);//left1是被刪除短信后面所有的短信
//MessageBox(left1,TEXT("left1"),MB_OK);
while(2*left1.GetLength() > 40)
{
int newpos=left1.Find(TEXT("\r\n"));
CString left2=left1.Left(newpos+2);//lef的第一條短信
//MessageBox(left2,TEXT("left2"),MB_OK);//顯示面的第一條短信
CString shiyan=left2.Mid(44,2);
//MessageBox(shiyan,TEXT("shiyan"),MB_OK);
CString poiu1=left2.Left(44);//這是字符
CString poiu2=left2.Mid(44,2);//索位
CString poiu3=left2.Mid(46,118);//這是所有的字符
left2=poiu1+newindex+poiu3;
//left2.Replace(shiyan,newindex);
//MessageBox(left2,TEXT("修改后left2"),MB_OK);
newindex=shiyan;
length4-=(newpos+2);
left1=s.Right(length4);
//MessageBox(left1,TEXT("循環(huán)里面的left1"),MB_OK);
string1+=left2;
//MessageBox(string1,TEXT("string1"),MB_OK);//點擊第完整信息
//點擊第三完整信息
//點擊第條短信的完整信息
}
// m_display=string1;
UpdateData(0);
CloseHandle(file);
CFile::Remove(TEXT("\\Storage Card\\SaveMsg.txt"));
int m_num2=2*string1.GetLength();
CString yyyyyy;
yyyyyy.Format(TEXT("%s%d"),yyyyyy,m_num2);
//MessageBox(yyyyy,TEXT("m_num2"),MB_OK);//點擊第二條短信,顯示58
CFile file1;
file1.Open(TEXT("\\Storage Card\\SaveMsg.txt"),CFile::modeCreate|CFile::modeWrite);
file1.Write(string1,m_num2);
file1.Close();
CString ss=openfile();
BOOL a=m_ListCtrl.DeleteAllItems();
UpdateData(FALSE);
signjjj=0;
pagesign=0;
DisplayListItems();
//DisplayListItems();
}
void CMsgDlg::OnButton3() //返回
{
// TODO: Add your control notification handler code here
CDialog::OnOK();
//DelFileLine(TEXT("03"));
}
void CMsgDlg::OnButton9()
{
// TODO: Add your control notification handler code here
// m_displaynew.Empty();
UpdateData(0);
}
void CMsgDlg::DisplayEveryList(CString StrList)//"向后"按鍵調用此函數
{
//AfxMessageBox(TEXT("進入 DisplayEveryList"),MB_OK);
j=0; //0->1 2006/3/23
int pos;
TCHAR *buffer;//指向UNICODE碼的指針
SPS *buf;
TCHAR sbuffer[100];
int iPos;
CString y;
//CString shiyan=StrList.Right (119);//119
//MessageBox(StrList,TEXT("DisplayEveryList->StrList"),MB_OK);//顯示所有短信
while(2*StrList.GetLength() > 40)
{
pos=StrList.Find(TEXT("\r\n"));
CString ggg;
ggg.Format(_T("%s%d"),ggg,pos);
//MessageBox(ggg,TEXT("pos"),MB_OK);//pos 是59
y=StrList.Left(pos+2);
StrList=StrList.Right(StrList.GetLength()-pos-2);//第一次執(zhí)行,StrList指向從第二條短信開始后面的短信
buffer=y.GetBuffer(2*y.GetLength());
buf=(SPS*)buffer;
memcpy(sbuffer,(*buf).Sender,26);
//MessageBox(sbuffer,TEXT("sbuffer前"),MB_OK);//8613652336842 小方框
CString k=(*buf).Sender;
//MyTrim(sbuffer,30);
MyTrim(sbuffer,26);
iPos=m_ListCtrl.InsertItem(j,sbuffer);
memcpy(sbuffer,(*buf).Status,6);
MyTrim(sbuffer,6);
m_ListCtrl.SetItemText(iPos,1,sbuffer);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -