小弟求教关于MFC的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 13:15:58
void CYuanwenjianView::OnDraw(CDC* pDC)
{
CYuanwenjianDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
HMETAFILE hmetaFile;
hmetaFile=dc.Close();
pDC->PlayMetaFile(hmetaFile);
dc.Create();
DeleteMetaFile(hmetaFile);
}
这段代码当中,那个dc是我在视类当中定义的:CMetaFileDC dc;并且在视类的构造函数中已经dc.Create();我不明白的是当我让窗口发生重绘时,执行这个函数,因为调用了pDC->PlayMetaFile(hmetaFile);接着就是显示了我在重绘前画的东西,可是后来紧跟着就调用了DeleteMetaFile(hmetaFile);
函数呀,这个函数不是将由hmetaFile所标识的文件删除了吗,应该看不见了我那时候画的呀,可是为什么依旧能看见呢。

当然了,已经显示到用户界面了,你如果在pDC->PlayMetaFile(hmetaFile)调用就不出现了,
就如:
void CYuanwenjianView::OnDraw(CDC* pDC)
{
CYuanwenjianDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CString str="fffff";
pDC->TextOUT(50,50,str);
str.Empty();//清空字符串
}
删后用户界面的fffff会消失吗?

才5分
那我只能告诉你 我不知道