在一个基于对话框的应用程序中,有两个对话框,要显示同样颜色的背景位图,只是由于比例关系,大小不一样,如何做?

解决方案 »

  1.   

    先用Photoshop等改变一下图片大小,呵呵。
      

  2.   

    在初始化函数里
    m_hBitmap = ::LoadBitmap(::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP_YOURBITMAP));
    在OnPaint里
    CPaintDC dc(this); // device context for painting
    // TODO: Add your message handler code here
    HDC hDC;
    CRect rect;
    ::GetClientRect(this->m_hWnd, rect);
    hDC = ::CreateCompatibleDC(dc.m_hDC);
    HBITMAP hOldBmp = (HBITMAP)::SelectObject(hDC, m_hBitmap);
    ::StretchBlt(dc.m_hDC, rect.left, rect.top, rect.Width(), rect.Height(), hDC, 0, 0, your_bitmap_width, your_bitmap_height, SRCCOPY);
    ::SelectObject(hDC, hOldBmp);
    ::DeleteDC(hDC);