9
回答
VS2008下release的结果与debug的结果不同
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

小女子用MFC编一个有绘图功能的界面,在debug下是正确的,但是release下结果就不一样了,具体如下:

我在对话框中开了个窗口将数据绘制出来,绘制的窗口背景设置为黑色,并绘出绿色的网格线和黄色的label。在debug下运行后是可以显示出网格和label的,然后在release下就一片黑了……

背景是用FillSolidRect这个函数填充的颜色,而网格线和label是在onpaint里调用自己定义的函数画的。自己觉得问题应该就出在自定义的这两个函数里,其中绘制网格的函数如下

void C2DPushGraph::internal_DrawGrid( CDC &dc, CRect& rect)
{
 /* Draw the grid overlay.
 
 We use rect.left as our x offset instead of zero because
 if m_bShowMinMax is true, then rect.left is set to the
 first pixel after the labels. */

 CPen GridPen( PS_SOLID, 1, m_crGridColor );
 CPen *pOldPen = dc.SelectObject(&GridPen);


 for (int n = rect.Height()-1; n >= 0; n -= m_nGridSize)
 {
  dc.MoveTo(rect.left, n);
  dc.LineTo(rect.right, n);
 }
  
 for (int n = rect.left + m_nMoveOffset; n < rect.right; n += m_nGridSize) // add it here James Del n
 {
  if (n < rect.left)
  {
   continue;
  }

  dc.MoveTo(n, 0);
  dc.LineTo(n, rect.Height());
 }

 dc.SelectObject(pOldPen);
 GridPen.DeleteObject();
}

 

初学MFC,对这样的问题完全没头绪呀~~~还请各位大侠赐教!!小女子不胜感激!

举报
ShiningPig
发帖于5年前 9回/1K+阅
顶部