1. 程式人生 > >mfc將顯示在edit control控制元件中的內容輸出到文字

mfc將顯示在edit control控制元件中的內容輸出到文字

CFile m_File;

CString FileName;

CString strTemp;

CEdit *p_edit;
int i = 0;
int j = 0;
int ilen = 0;
int iCnt = 0;


CTime t = CTime::GetCurrentTime();
FileName = t.Format("%Y-%m-%d-%H-%M-%S");
FileName += _T(".txt");//使用系統日期作為檔名

p_edit = (CEdit*)GetDlgItem(IDC_EDIT_RECEIVE);

if (m_File.Open(FileName, CFile::modeCreate | CFile::modeWrite))
{
iCnt = p_edit->GetLineCount();//取得edit控制元件中有多少行
for (i = 0; i < iCnt; i++)//按每行輸出到文字中
{
strTemp.Empty();
ilen = p_edit->LineLength(i);//第i行的長度
if (ilen == 0)
{
continue;
}
p_edit->GetLine(i, strTemp.GetBuffer(p_edit->LineLength(i)), ilen);//第i行的串給strTemp
strTemp.ReleaseBuffer();

ilen = strTemp.GetLength();
strTemp = strTemp.Left(ilen);
for (j = 0; j < ilen; j++)//加這個的目的是因為strTemp的長度超過16個字元輸出只有前16個字元,因此改用一個字元一個字元輸出,自己都覺得愚
{
CString ch = strTemp.Mid(j,1);
m_File.Write(ch, 1);//為什麼寫的時候長度>16會丟字元,如果有好建議歡迎留言
}

}
m_File.Close();
}