你的意思是不是可以随时替换bmp?如果是那样,你可以使用LoadImage的LOADFROMFILE来装入该bmp.

解决方案 »

  1.   

    比如想超级解霸的皮肤,用bmp图片作为skin,而且可以随时改变
      

  2.   

    加入到类定义中CBitmap m_Bitmap;
    afx_msg BOOL OnEraseBkgnd (CDC* pDC);
    BOOL CDlg::OnEraseBkgnd (CDC* pDC)
    {
    if(m_Bitmap.GetObjectType())
    {
    CDC dc;
    BITMAP Bmp;
    m_Bitmap.GetBitmap(&Bmp);
    if(!dc.CreateCompatibleDC(pDC))
    return CDialog::OnEraseBkgnd(pDC);
    CBitmap *pOldBmp=dc.SelectObject(&m_Bitmap);
    CRect rect;
    GetWindowRect(&rect);
    int sizex=rect.right-rect.left,sizey=rect.bottom-rect.top;
    int bmpx=Bmp.bmWidth,bmpy=Bmp.bmHeight;
    for(int x=0;x<=sizex;x+=bmpx)
    for(int y=0;y<=sizey;y+=bmpy)
    pDC->BitBlt(x,y,bmpx,bmpy,&dc,0,0,SRCCOPY);
    dc.SelectObject(pOldBmp); return true;
    }
    else
    return CDialog::OnEraseBkgnd(pDC);}bool CDlg::SetBkBmp(int nBmpId)
    {
    if(!m_Bitmap.LoadBitmap(nBmpId))
    return false;
    return true;}