急!!如何将一个元文件写入到磁盘文件中

face2003 2003-09-07 04:22:40
我首先在内存中建立一个元文件:
CMetaFileDC* pMetaFileDC;
pMetaFileDC=new CMetaFileDC();
pMetaFileDC->Create();
然后在图元文件中绘制一些图形,如:
pMetaFileDC->MoveTo(pt[0]);
for(i=1;i<n;i++)
{
pDC->LineTo(pt[i]);
pMetaFileDC->LineTo(pt[i]);
}
...............
最后我想把这个元文件写入到磁盘文件中,这么办??我使用
CString strFileName;
CFileDialog fileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,\
"*.wmf|*.wmf||", NULL );
if(fileDlg.DoModal()==IDOK)
{
strFileName=fileDlg.GetFileName();
}
输入要保存的文件名称。
先谢谢!!
...全文
39 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
oceanslan 2003-09-10
  • 打赏
  • 举报
回复
if(fileDlg.DoModal()==IDOK)
{

strFileName=fileDlg.GetPathName();
BOOL bWorking=finder.FindFile(strFileName);
if(bWorking)
{
if(MessageBox(strFileName+" 已经存在,是否要覆盖 ","确 认",MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON1)==IDNO)
{
return;
}
}

HMETAFILE MetaFileHandle=pDoc->pMetaFileDC->Close();
//将pMetaFileDC中的内容写入到strFileName中
CopyMetaFile(MetaFileHandle,strFileName);
//使用ReplacementMetafileDC代替pMetaFileDC,再使用pMetaFileDC代替ReplacementMetafileDC
CMetaFileDC* ReplacementMetafileDC=new CMetaFileDC();
ReplacementMetafileDC->Create();
ReplacementMetafileDC->PlayMetaFile(MetaFileHandle);
DeleteMetaFile(MetaFileHandle);
delete pDoc->pMetaFileDC;
pDoc->pMetaFileDC=ReplacementMetafileDC;
}
xiaoliuzi 2003-09-07
  • 打赏
  • 举报
回复
up
whoishere 2003-09-07
  • 打赏
  • 举报
回复
不知道这样行不行:

在strFileName=fileDlg.GetFileName();之后写:
CFile fileWrite;
if( fileWrite.Open( strFileName , CFile::modeCreate|CFile::modeWrite ) )
{
fileWrite.Write( pMetaFileDC , sizeof( CMetaFileDC ) );
fileWrite.Close( );
}

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧