首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

请问"窗口重绘"的有关问题

2012-03-08 
请教窗口重绘的问题照着书上打了个对话框形式的画图的程序,有画圆画线等功能。一路上磕磕碰碰,但基本完成

请教"窗口重绘"的问题
照着书上打了个对话框形式的画图的程序,有画圆画线等功能。一路上磕磕碰碰,但基本完成。
后来看到"窗口重绘"部分,照着书上介绍,注释掉了OnPaint里原有的全部代码,整个函数就是这样:

void CPaintORamaDlg::OnPaint() 
{
CPaintDC dc(this);
//吧GDI命令累计到图元文件中,创建一个hmf
HMETAFILE hmf=m_pMF->Close();
//复制当前GDI命令
dc.PlayMetaFile(hmf);

//创建新的DC对象记录后续命令
CMetaFileDC* temp=new CMetaFileDC;
temp->Create();

//更新DC
temp->PlayMetaFile(hmf);
DeleteMetaFile(hmf);
delete m_pMF;
m_pMF=temp;
}

已经检查过很多遍,一个字都没有少。前面画图部分是这样保存的:

dc.MoveTo(m_LineStart);
dc.LineTo(m_LineEnd);
m_pMF->MoveTo(m_LineStart);
m_pMF->LineTo(m_LineEnd);
m_LineStart=m_LineEnd;//连接每个像素点

就是还和没有加一样,完全没有重绘。用其他窗口遮盖,然后挪开,画的东西还是没了。
请大家帮我看看哪儿出了问题,先谢谢了!

[解决办法]
我完全复制了你的代码,我运行了没问题,可以重绘,我用的是VS2005。

所以我找不出你的问题在哪里。

热点排行