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

📄 subject_45970.htm

📁 vc
💻 HTM
字号:
<p>
序号:45970 发表者:董天文 发表日期:2003-07-05 14:55:56
<br>主题:疑义相与析
<br>内容:我从MSDN中考了:<BR>void CPaintView::OnPaint()<BR>{<BR>PAINTSTRUCT ps;<BR>&nbsp;&nbsp; CDC* pDC = BeginPaint(&amp;ps);<BR>&nbsp;&nbsp; pDC-&gt;TextOut(0,0,"dakdkjf");<BR>&nbsp;&nbsp; pDC-&gt;Ellipse(CRect(0, 0, 30, 100));<BR><BR>&nbsp;&nbsp;EndPaint(&amp;ps);<BR><BR>&nbsp;&nbsp; // Do not call CView::OnPaint() for painting messages<BR>}<BR>编译都通过了,运行时却不画椭圆,这是为什么? 
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:shenjie 回复日期:2003-07-05 17:57:53
<br>内容:首先用的如果是不是Doc-View的话,OnPaint应该有CDC *pDC作为参数为什么要自己建立呢?而且即使建立也不应该用BeginPaint建立,因为程序在之前已经调用过BeginPaint,所以你在此的调用肯定是失败的,如果一定要在OnPaint里面自建DC,那么可以直接用CClientDC dc(this);
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:董天文 回复日期:2003-07-06 11:55:34
<br>内容:可是编译都通过了,而且这是从MSDN中COPY过来的,应该没问题的.为了检验是否OnPaint()运行了,我才加了 pDC-&gt;TextOut(0,0,"dakdkjf");而且把OnPaint()加到OnDraw()中了,结果字符串显示,但不画椭圆,这是为什么呢?<BR>我查过OnPaint()在BASE CLASSS 中是Non-virtual 所以应该执行我定义的没错.现在就是高不懂为什么不画椭圆?<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>
回复者:撒达姆的大表弟 回复日期:2003-07-06 15:43:39
<br>内容:你没有得到视图类指针怎么去画?像shenjie说的,用CClientDC dc(this);
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:angels 回复日期:2003-07-06 18:43:40
<br>内容:哈哈,兄弟,编译通过的程序多了,可不一定对呀?不然DEBUG干什么?VC还要搞那么大的调试系统?<BR>"你没有得到视图类指针怎么去画?像shenjie说的,用CClientDC dc(this); "说的没错的。<BR><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>
回复者:董天文 回复日期:2003-07-06 22:52:15
<br>内容:兄弟们所言不错,我所看到的程序都是用CClientDC dc(this); 但上面的问题是:我从MSDN中拷贝来的,问题出在哪儿呢?
<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>回复者:luowen 回复日期:2003-07-07 00:13:26
<br>内容:BeginPaint是WIN32API的函数,而你在MFC的ONPAINT中,他默认的已经调用了BEGINPAINT
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:董天文 回复日期:2003-07-07 09:04:10
<br>内容:大哥:你没看到我已经查到ONPAINT()在基类中不是虚函数吗?<BR>所以调用的应该还是我自定义的,且我曾把函数名改为OnPain()也还是不行!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:angels 回复日期:2003-07-07 21:26:46
<br>内容:MSDN的程序是针对他的程序来做的,你不可以生吞活剥它,回头还说他不对呀。<BR>呵呵。你读别人的程序要看上下文的,环境不同程序的效果也不同。不能死搬的。<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 + -