当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·今天第一次来, 散点分。    »显示摘要«
    摘要: 今天第一次来, 散点分。 5分钟后结贴 ......
    摘要: 这是什么问题啊 ......


在提一个初学者问题,谁解决还是100分,窗体重画的问题

//建立一个单文档界面,最后一项选择CScrollView  
  //在OnlintialUpdate()中加入如下代码  
          CScrollView::OnInitialUpdate();  
          CSize   sizeTotal(0,   5000);   //   20   by   30   cm  
          CSize   sizePage(sizeTotal.cx   /   2,   sizeTotal.cy   /   2);  
          CSize   sizeLine(sizeTotal.cx   /   50,   sizeTotal.cy   /   50);  
          SetScrollSizes(MM_TEXT,   sizeTotal,   sizePage,   sizeLine);  
  //在OnLButtonUp()中加入如下代码  
  CClientDC   dc(this);  
  int   i=0;  
  while   (i<5000)  
  {  
  dc.TextOut(0,i*15,"aaaa");          
  i++;  
  }  
  // m_rectEllipse(0,0,1000,1000);  
  CRect   rectDevice   =   m_rectEllipse;  
  InvalidateRect(rectDevice);  
  //在滑动块滑动时,一定会让显示出来的字消失  
  //不过滑动块滑动时,一定会使窗体重画,好像调用什么paint()函数  
  //可我又不想在其它函数中写代码,  
  //请问,如何滑动块滑动时显示的字不消失?

NO.1   作者: he_zhidan

 
          CSize   sizeTotal(0,   5000);   //   20   by   30   cm  
   
  ================  
          试试CSize   sizeTotal(5000,   5000);   //   20   by   30   cm  
           
 

NO.2   作者: he_zhidan

参考一下  
  避免闪烁的代码有几十行  
   
  void   CSdiView::OnChar(UINT   nChar,   UINT   nRepCnt,   UINT   nFlags)    
  {  
  CDC   *   pDC   =   GetDC();  
  StringData   +=   nChar;  
  CRect   r(0,0,0,0);  
  pDC->DrawText(StringData,&r,DT_LEFT|DT_CALCRECT);  
  InvalidateRect(r);  
   
  CView::OnChar(nChar,   nRepCnt,   nFlags);  
  }  
  void   CSdiView::OnDraw(CDC*   pDC)  
  {  
  pDC->DrawText(StringData,CRect(0,0,1000,1000),DT_LEFT);  
  }

NO.3   作者: mct1025

要想达到窗体重画,OnDraw,OnPaint,必须重载一个  
   
  如果是view,建议在OnDraw中处理

NO.4   作者: tigerVC

Cwnd   中的函数Redraw(BOOL),当设置为FALSE时不会改变

NO.5   作者: Viconia

这样重画的话,不重载ondraw肯定消失的

NO.6   作者: Saimen

//在OnLButtonUp()中加入如下代码             <<<<----------     绘图的地方不正确  
   
    View   类型,应在   OnDraw   中绘图,这样在系统发出任何绘图消息时才会调用   OnDraw   重绘  
   
   
  你可以这样:  
  加入一个变量     BOOL     bLButtonDown  
   
  在   OnLButtonUp   中对其赋值  
   
  {  
          bLButtonDown   =   FALSE;  
          InValidate();  
  }  
   
  在   OnLButtonDown   中  
  {  
          bLButtonDown   =   TRUE;  
          Invalidate();  
  }  
   
   
  在OnDraw中加入  
   
  {  
          if(   lButtonDown   ==   FALSE   )  
          while(int   i<5000)  
          {  
        dc.TextOut(0,i*15,"aaaa");          
      i++;  
            }  
   
   
  }  
   
   
   
  这样在你其它的情况下字就不会消失了

NO.7   作者: Saimen

while   (i<5000)  
  {  
  dc.TextOut(0,i*15,"aaaa");          
  i++;  
  }  
 

NO.8   作者: bluebohe

void   CSdiView::OnChar(UINT   nChar,   UINT   nRepCnt,   UINT   nFlags)    
  {  
  StringData   +=   nChar;  
  Invalidate();  
   
  CView::OnChar(nChar,   nRepCnt,   nFlags);  
  }  
  void   CSdiView::OnDraw(CDC*   pDC)  
  {  
  pDC->Textout(0,0,StringData);  
  }  
 

NO.9   作者: Saimen

写了半天,怎么发上去的是这样的?  
   
   
  你绘图的地方不对  
   
  你做一个变量     BOOL   bLButtonUp  
   
  在   OnLButtonUp   中  
   
  bLButtonUp   =   TRUE;  
   
   
  在   OnDraw   中加入  
   
      if(   bLButtonUp   )  
  {  
   
        while(   i   <   5000   )  
  {  
        dc.TextOut(.......);  
        i++   ;  
  }  
   
  }  
   
   
   
  这样就不会再消失了


    摘要: 怎么檫掉image上的图象? 谢谢 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE