MFC中读取文件操作是否有误
void CgCodeView::OnFileOpen(){
// TODO: 在此处添加实现代码.
CFileDialog *m_OpenFile;
CString str;
CString m_GetFilePath;
m_OpenFile = new CFileDialog(TRUE,NULL, NULL, OFN_FILEMUSTEXIST, "(*.txt)|*.txt||");
char TempStr1;
char TempStr2;
char X;
char Y;
memset(TempStr1, '\0', 10);
memset(TempStr2, '\0', 10);
memset(X, '\0', 10);
memset(Y, '\0', 10);
if (m_OpenFile->DoModal() == IDOK)
{
m_array.RemoveAll();
m_GetFilePath = m_OpenFile->GetPathName();
CStdioFile File;
File.Open(m_GetFilePath, CFile::modeRead);
CString FileData;
do
{
File.ReadString(FileData);
scanf_s(FileData, "%s %s", TempStr1, TempStr2);
if (FileData == "")
break;
m_data->x= strtod(TempStr1, NULL);
m_data->y= strtod(TempStr2, NULL);
m_array.Add(m_data);
} while (1);
delete m_OpenFile;
}
}
请各位大佬帮忙看一下,我这样子在MFC中读取txt文件的操作,哪一步骤是错误的 出什么问题了? jhq999 发表于 2022-12-16 10:14
出什么问题了?
就是我在OnDraw()函数中调用读取文件的函数,编译没有问题,但是运行的时候没有图像出现void CgCodeView::OnDraw(CDC *pDC)
{
CgCodeDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
OnFileOpen();
if (m_array.GetSize() == 0)
{
MessageBox("请先打开txt文件");
return;
}
CRect rect;//定义客户区矩形
GetClientRect(&rect);//获得客户区的大小
pDC->SetMapMode(MM_ANISOTROPIC);//pDC自定义坐标系
pDC->SetWindowExt(rect.Width(), rect.Height());//设置窗口范围
pDC->SetViewportExt(rect.Width(), -rect.Height());//设置视区范围,x轴水平向右,y轴垂直向上
CPencpen;
cpen.CreatePen(PS_SOLID, 1, RGB(0, 0, 0));//定义画笔颜色
pDC->SelectObject(&cpen);
pDC->MoveTo(m_data.x,m_data.y);
for (int i = 1; i < m_array.GetSize(); i++)
{
pDC->LineTo(m_data.x, m_data.y);
}
} 本帖最后由 jhq999 于 2022-12-17 13:51 编辑
dongmei 发表于 2022-12-16 14:06
就是我在OnDraw()函数中调用读取文件的函数,编译没有问题,但是运行的时候没有图像出现
不知道是不是你需要的答案
GetClientRect(&rect);//获得客户区的大小
//pDC->SetMapMode(MM_ANISOTROPIC);//pDC自定义坐标系
//pDC->SetWindowExt(;//设置窗口范围
//pDC->SetViewportExt(rect.Width(), -rect.Height());//设置视区范围,x轴水平向右,y轴垂直向上
pDC->SetViewportOrg(0, rect.Height());
CPencpen;
cpen.CreatePen(PS_SOLID, 1, RGB(0, 0, 0));//定义画笔颜色
pDC->SelectObject(&cpen);
页:
[1]