mfc將顯示在edit control控制元件中的內容輸出到文字
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();
}