⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_15081.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:15081 发表者:小年 发表日期:2002-09-14 10:10:12
<br>主题:为什么图象只是一闪而过?
<br>内容:为什么图象只是一闪而过?<BR>BOOL CMainFrame::OnEraseBkgnd(CDC* pDC) <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: Add your message handler code here and/or call default<BR>&nbsp;&nbsp;&nbsp;&nbsp;CRect&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rect;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memDC;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CBitmap*&nbsp;&nbsp;&nbsp;&nbsp;pOldMemBmp = NULL;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;GetClientRect(&rect);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//装载背景位图<BR>&nbsp;&nbsp;&nbsp;&nbsp;memDC.CreateCompatibleDC(pDC);<BR>&nbsp;&nbsp;&nbsp;&nbsp;pOldMemBmp = memDC.SelectObject(&cBitmap);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//将背景位图复制到窗口客户区<BR>&nbsp;&nbsp;&nbsp;&nbsp;pDC-&gt;BitBlt(0, 0, rect.Width(), rect.Height(), &memDC, 0, 0, SRCCOPY);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;if (pOldMemBmp) memDC.SelectObject( pOldMemBmp );<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//删除系统却省的OnEraseBkgnd功能<BR>&nbsp;&nbsp;&nbsp;&nbsp;//return CDialog::OnEraseBkgnd(pDC);<BR>&nbsp;&nbsp;&nbsp;&nbsp;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*&nbsp;&nbsp;&nbsp;&nbsp;pOldMemBmp 在头文件中进行申明即可,因为你把CBitmap*&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rect;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memDC;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CBitmap*&nbsp;&nbsp;&nbsp;&nbsp;pOldMemBmp = NULL;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;GetClientRect(&rect);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//装载背景位图<BR>&nbsp;&nbsp;&nbsp;&nbsp;memDC.CreateCompatibleDC(pDC);<BR>&nbsp;&nbsp;&nbsp;&nbsp;pOldMemBmp = memDC.SelectObject(&cBitmap);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//将背景位图复制到窗口客户区<BR>&nbsp;&nbsp;&nbsp;&nbsp;pDC-&gt;BitBlt(0, 0, rect.Width(), rect.Height(), &memDC, 0, 0, SRCCOPY);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;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>内容:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CFrameWnd::OnEraseBkgnd(pDC); //调用基类函数,绘制下面不关心的内容<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDC* pDcC=GetWindowDC();//不用传进来的dc<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...... //作图<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReleaseDC(pDcC); //释放设备环境<BR>&nbsp;&nbsp;&nbsp;&nbsp;return TRUE;&nbsp;&nbsp;&nbsp;&nbsp; //返回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 + -