关于VC绘图的一个问题
我在VC中使用GDI+绘图时,遇到以下难题,当主对话框窗口移过程序的另外一个应用程序窗口时,应用程序窗口中的图片不能及时的刷新,会留下一点空白,如下图所示
这是没有移过窗口时的图
这是移过窗口时的图
以下是我绘图的代码
- C/C++ code
Image BackgroundPicture(m_strPicturePath); Bitmap * buf=new Bitmap(recLedPlayWnd.Width(),recLedPlayWnd.Height()); Graphics graphics(buf); Rect rectGraphics(0,0,recLedPlayWnd.Width(),recLedPlayWnd.Height()); graphics.DrawImage(&BackgroundPicture,rectGraphics); Graphics gc(dc.m_hDC); gc.DrawImage(buf,0,0); delete buf; gc.ReleaseHDC(dc.m_hDC);
求高人指教...
[解决办法]
OnEreasBkgnd处理了么
另外
桌面不错
[解决办法]
被侵袭的那个窗体,就是那个苹果。
BOOL CMainFrame::OnEraseBkgnd(CDC* pDC)
return FALSE;
[解决办法]
去掉最后一句:
gc.ReleaseHDC(dc.m_hDC);//它是对应Graphics的GetHdc成员函数的
另外,你最后有没有那句CDialog::OnPaint();?
有的话,也去掉~~
[解决办法]
卡是因为你每次都Bitmap * buf=new Bitmap(recLedPlayWnd.Width(),recLedPlayWnd.Height());
当然卡,把它搞成成员变量或用GDI
[解决办法]
Image BackgroundPicture(m_strPicturePath);
这个对象不用每次绘图时都建立,做成成员变量可以提高效率。