📄 subject_15081.htm
字号:
<p>
序号:15081 发表者:小年 发表日期:2002-09-14 10:10:12
<br>主题:为什么图象只是一闪而过?
<br>内容:为什么图象只是一闪而过?<BR>BOOL CMainFrame::OnEraseBkgnd(CDC* pDC) <BR>{<BR> // TODO: Add your message handler code here and/or call default<BR> CRect rect;<BR> CDC memDC;<BR> CBitmap* pOldMemBmp = NULL;<BR><BR> GetClientRect(&rect);<BR><BR> //装载背景位图<BR> memDC.CreateCompatibleDC(pDC);<BR> pOldMemBmp = memDC.SelectObject(&cBitmap);<BR><BR> //将背景位图复制到窗口客户区<BR> pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &memDC, 0, 0, SRCCOPY);<BR><BR> if (pOldMemBmp) memDC.SelectObject( pOldMemBmp );<BR><BR> //删除系统却省的OnEraseBkgnd功能<BR> //return CDialog::OnEraseBkgnd(pDC);<BR> return TRUE;<BR>}
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:guoj 回复日期:2002-09-14 13:21:02
<br>内容:你在OnDraw()中作了什么?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:小年 回复日期:2002-09-14 17:18:07
<br>内容:没作什么?上面是一个多文档界面程序里的BOOL CMainFrame::OnEraseBkgnd(CDC* pDC) <BR>。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:小付 回复日期:2002-09-15 10:20:16
<br>内容:你把CBitmap* pOldMemBmp 在头文件中进行申明即可,因为你把CBitmap* pOldMemBmp 申明为了局部变量,在该函数执行完后该变量就销毁了,所以会一闪而过。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:海阔天空 回复日期:2002-09-16 20:53:08
<br>内容:将<BR>CRect rect;<BR> CDC memDC;<BR> CBitmap* pOldMemBmp = NULL;<BR><BR> GetClientRect(&rect);<BR><BR> //装载背景位图<BR> memDC.CreateCompatibleDC(pDC);<BR> pOldMemBmp = memDC.SelectObject(&cBitmap);<BR><BR> //将背景位图复制到窗口客户区<BR> pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &memDC, 0, 0, SRCCOPY);<BR><BR> if (pOldMemBmp) memDC.SelectObject( pOldMemBmp );<BR>放在视图类的OnDraw()中就可以了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:关尔 回复日期:2002-09-16 23:52:47
<br>内容:把你的子窗口都关掉还是这样吗?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:不说 回复日期:2002-09-18 06:03:39
<br>内容:倒…………谁让你return TRUE的?TRUE就是告诉窗口要擦除背景,你刚画的图可不是马上就被擦了么?return FALSE着,赶紧!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:小年 回复日期:2002-09-20 15:18:18
<br>内容:以上各位的建议我都试过,但结果一样,请各位大哥帮帮忙!!!!!!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:不说 回复日期:2002-09-23 04:07:41
<br>内容:对了,OnEraseBkgnd拿到的dc好象是窗口的dc,不是client area 的dc,你得在onncpaint里作这件事(画非client area)或者在ondraw里(client area),然后onerasebkgnd里只return false
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:iwill 回复日期:2002-09-23 12:11:22
<br>内容: CFrameWnd::OnEraseBkgnd(pDC); //调用基类函数,绘制下面不关心的内容<BR> CDC* pDcC=GetWindowDC();//不用传进来的dc<BR> ...... //作图<BR> ReleaseDC(pDcC); //释放设备环境<BR> return TRUE; //返回TRUE<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:小年 回复日期:2002-10-01 15:20:51
<br>内容:任然如此,甚至更差。<BR><BR>采用"不说"的建议:若在OnNcPaint()则覆盖了工具条;若在OnDraw(),则画在了文档视图中了,我是想画在MDIClient中。<BR><BR>采用"iwill"的建议:整个窗口都覆盖了(怎么能用GetWindowDC()呢,用GetDC()还差不多,但用GetDC()还是不行)。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:不说 回复日期:2002-10-01 20:32:10
<br>内容:拉倒拉倒,这个codeproject的例子自己去琢磨吧……MDI比SDI要麻烦不少<BR><BR>http://www.codeproject.com/dialog/mdibackgroundimage.asp
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:小年 回复日期:2002-10-04 14:28:22
<br>内容:谢谢!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -