- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
部分代码:
//////////////////////////////////////////////////////////////////////////////////////////////
//Doc类,主要处理文件读写,以及运算;void CDTMDoc::OnFileOpen() //响应函数,响应“打开”这一命令消息
{
CMainFrame *pMainFrm = new CMainFrame;
pMainFrm = (CMainFrame *)AfxGetApp()-m_pMainWnd;
pMainFrm-GetMenu()-GetSubMenu(0)-EnableMenuItem(ID_FILE_OPEN,MF_BYPOSITION | MF_GRAYED);
//以下利用CFileDialog类创建一个打开文件对话框
CFileDialog OpenFileDlg(TRUE, _T(DEM Files (*DEM)), NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT |OFN_ALLOWMULTISELECT|OFN_ENABLESIZING,
_T(Digital Terrain Data Files (*.txt;*.DTD;*.dat)|*.txt;*.DTD;*.dat)||),NULL);
CString path;
//DoModal()函数成功则返回IDOK或IDCANCEL,其返回值对应于用来关闭对话框的控件的ID
if(OpenFileDlg.DoModal() == IDOK )//点击对话框确定按钮得到路径
{
v_OrigPoint.clear();
XYLine.clear();
poOnLine.clear();
path = OpenFileDlg.GetPathName();//得到打开文件的路径
}
else
{
AfxMessageBox(_T(Cancel!));
return;
}
ifstream file;
setlocale(LC_CTYPE, .936);//处理中文路径问题
file.open(path);
setlocale(LC_CTYPE, );//成对使
if (!file)
{
AfxMessageBox(_T(Reading file failed! Maybe the file does not exist!));
return;//Open file failed,return.
}
OrigPoint *temp_OrigPoint = new OrigPoint;
AfxMessageBox(_T(读取DTM数据时间可能较长,\n请耐心等待!));
OnStatusBar(_T(Reading...));
char c;
while(TRUE)/ /利用Break跳出
{
filetemp_OrigPoint-Mark1;
for (int i = 0;i4;i++) //ATTR
{
filec;
}
filetemp_OrigPoint-x;
filetemp_OrigPoint-y;
filetemp_OrigPoint-z;
filetemp_OrigPoint-Mark2; //最后一列
if (file)
{
v_OrigPoint.push_back(*temp_OrigPoint);
}
else
{
file.close();
break;
}
}
m_PointNUM=v_OrigPoint.size();
if (m_PointNUM == 0)//不支持文件格式
{
AfxMessageBox(_T(不支持文件格式!\n打开失败!));
return;
}
FileIsOpen = TRUE;
Analysis();
pMainFrm-m_wndStatusBar.SetPaneInfo(1,ID_State_Doing,SBPS_NORMAL,150);//100为宽度可调整
pMainFrm-m_wndStatusBar.SetPaneText(1,_T(Waitting Location!),true);
// TODO: Add your command handler code here
}
void CDTMDoc::OnStatusBar(CString str)//状
文档评论(0)