一张图片如何把它做成对话框背景图,并且在窗体改变大小的时候,图片也随着自适应. 看看QQ窗体如何绘制的呢?
总不是一张图片吧.得分好几个区,这几个区怎么绘制?

解决方案 »

  1.   

    StretchDIBits   把目标矩形设置成窗口大小 
      

  2.   

    在WM_PAINT消息里画:CPaintDC dc(this);CRect rcClient;
    CDC   MemDC;
    CBitmap* pOldBitmap;
    BITMAP bm;
    int nStretchMode;GetClientRect(&rcClient);
    m_bitmap.GetObject(sizeof(bm), &bm);
    MemDC.CreateCompatibleDC(&dc);
    pOldBitmap = MemDC.SelectObject(&m_bitmap); //m_bitmap在其它地方装入的背景位图
    nStretchMode = dc.SetStretchBltMode(HALFTONE); //设置缩放模式,防止拉伸后画面失真//绘制到窗口
    dc.StretchBlt(0, 0, rcClient.Width(), rcClient.Height(), &MemDC, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);MemDC.SelectObject(pOldBitmap);
    MemDC.DeleteDC();
    dc.SetStretchBltMode(nStretchMode);