技术内幕6.0示例EX11C中为什么显示位图要放大30倍显示啊,如果去掉位图很小。
void CEx11cView::OnDraw(CDC* pDC)
{
    BeginWaitCursor();
    m_dibResource.UsePalette(pDC); // should be in palette
    m_dibFile.UsePalette(pDC);     //  message handlers, not here
    pDC->TextOut(0, 0, 
        "Press the left mouse button here to load a file.");
    CSize sizeResourceDib = m_dibResource.GetDimensions();
    sizeResourceDib.cx *= 30;      //就是这里
    sizeResourceDib.cy *= -30;     //就是这里
    m_dibResource.Draw(pDC, CPoint(0, -800), sizeResourceDib);
    CSize sizeFileDib = m_dibFile.GetDimensions();
    sizeFileDib.cx *= 30;
    sizeFileDib.cy *= -30;
    m_dibFile.Draw(pDC, CPoint(1800, -800), sizeFileDib);
    EndWaitCursor();
}

解决方案 »

  1.   

    你看看sizeResourceDib 的值是多少?
      

  2.   

    CSize只是记录整数,没有单位的。这于这个整数的意义,就要看你怎么定义的了。
      

  3.   

    不是你怎么定义。我是让你看看m_dibResource.GetDimensions();返回的值是多少。是为了看一看m_dibResource是什么东西,他返回什么。我又不知道m_dibResource是什么。你也不说,谁知道呢?
      

  4.   

    返回的是以像素表示的DIB的宽度和高度
      

  5.   

    你说图片是1280*1024,你调试一下,GetDimensions返回的size的值是多少啊?