📄 subject_33868.htm
字号:
<p>
序号:33868 发表者:碧落 发表日期:2003-03-24 20:28:16
<br>主题:求助,急急急
<br>内容:我想在视图中<BR>(1)出现一些文字,(这个是程序已开始执行时就希望出现的)<BR>(2)再点一个菜单,然后出现所画的曲线图形,就是更新视图.<BR>(3)想把这两个实现代码都放在OnDraw()函数中,不知是否能行得通????<BR>(4)如果不行,在菜单的响应函数中实现画图代码的话,有应该用什么函数来更新视图.<BR>我不是用鼠标作图,而是把程序中经过计算后的一些数据以图形的方式表现出来.<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>
<font color=red>答案被接受</font><br>回复者:赵灵儿 回复日期:2003-03-25 08:14:50
<br>内容:当然可以在OnDraw中执行。<BR>1、要写的文字直接用pDc->TextOut()输出,程序一进入就会显示出来<BR>2、画曲线的代码包含在程序段中:<BR> if(draw) {<BR> // 画曲线代码段<BR> }<BR>3、至于菜单操作嘛,只要在菜单处理函数中让draw = TRUE; 并且更新视图就行了<BR>4、更新视图的方法:取得文档指针后, pDoc->UpdateAllViews();
<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-03-25 09:51:29
<br>内容:和我想得差不多,那么另外一个问题呢?<BR> 我要显示的是仿真程序,也就是说我只需要从文档类中取出相关的数据绕后进行绘图操作就可以了,而不是从视图中绘图然后调用UpdateAllviews()来更新所有的视图.我看的这个函数的作用好像是在一个视图中绘图后再利用它来更新其他的视图,所以这个函数有我想要的这种更新试图(即在显示完一个仿真图形后,然后全部更新,继续显示接下来的仿真图形,这些曲线是连续不断的)的功能吗?<BR> 我想做的就是利用菜单,当点击菜单后就开始绘图,然后有别的菜单可以控制绘图过程,例如打印该曲线,或者可以继续仿真,或者退出,也就是有四个菜单来控制该绘图过程。<BR>所以我认为更新试图的工作应该算是一个前提吧。<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-03-25 10:19:42
<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>
回复者:碧落 回复日期:2003-03-25 10:33:26
<br>内容:多谢!<BR><BR><BR>希望各位大虾多多提出宝贵意见,最好是具体的操作方法,<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-03-25 22:16:55
<br>内容:CTestView::CTestView()<BR>{<BR> m_bFirst = TRUE;//在构造函数中初始化这个BOOL型变量<BR>}<BR><BR>void CTestView::OnDraw(CDC* pDC)<BR>{<BR> CTestDoc* pDoc = GetDocument();<BR> ASSERT_VALID(pDoc);<BR> if(m_bFirst)<BR> {<BR> CDC pDC;<BR> CBrush *pOldBrush=pDC.GetCurrentBrush();<BR> CBrush br;<BR> br.CreateSolidBrush(RGB(0,0,255));<BR> pDC.SelectObject(&br);<BR> pDC.Ellipse(1,1,300,300);<BR> br.Detach();<BR> br.CreateHatchBrush(HS_FDIAGONAL,RGB(255,255,0));<BR> pDC.SelectObject(&br);<BR> pDC.Ellipse(50,50,200,200);<BR> pDC.SelectObject(pOldBrush);<BR> }<BR><BR> else<BR> {<BR> CClientDC clientDC(this);<BR> CPen penRed(PS_DOT,1,RGB(255,0,0));<BR> CPen *pOldPen = NULL;<BR> pOldPen = pDC->SelectObject(&penRed);<BR> pDC->MoveTo(100,100);<BR> pDC->LineTo(75,50);<BR> pDC->LineTo(50,100);<BR> pDC->SelectObject(pOldPen);<BR> }<BR>}<BR><BR>void CTestView::OnDraw1() <BR>{<BR> m_bFirst = FALSE; <BR>}<BR><BR>但是现在编译能通过,可是执行后却出现如下错误原因,请大家多多执教。<BR><BR>Debug Assertion Failed!<BR>Program :E:\TEST\DEBUG\TEST.EXE<BR>File:afxwiml.inl<BR>Line:946<BR><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 + -