要在一个对话框上画16的一样的大小的图位!没有画过,希望大大们帮帮忙!或给个相关的例子看看!谢谢!

解决方案 »

  1.   

    在OnPaint()里:
    //假设你已经把Dialog 分成16个Rect rc[16]
    CDC *pDC = GetDC();
    CDC MemDC;
    CBitmap bitmap[16];
    CBitmap *pOldBmp = NULL;//load bitmap,如果调用的同一个资源位图,就不用这样处理
    for (int i = 0; i < 16; i++)
    {
     bitmap[i].LoadBitmap(IDB_BITMAP1 + i);
    }MemDC.CreateCompatibleDC(pDC);for (i = 0; i < 16; i++)
    {
      pOldBmp = MemDC.SelectObject(&bitmap[i]);
      pDC->BitBlt(rc[i].left, rc[i].top, rc[i].Width, rc[i].Height, &MemDC, 0, 0, SRCCOPY);//按rc的大小来copy
      MemDC.SelectObject(pOldBmp);
    }
    for (i = 0; i < 16; i++)
    {
     bitmap[i].DelectObject();
    }
    大致就是这样,没试过
      

  2.   

    在OnPaint()里:
    //假设你已经把Dialog 分成16个Rect rc[16]
    CDC *pDC = GetDC();
    CDC MemDC;
    CBitmap bitmap[16];
    CBitmap *pOldBmp = NULL;//load bitmap,如果调用的同一个资源位图,就不用这样处理
    for (int i = 0; i < 16; i++)
    {
     bitmap[i].LoadBitmap(IDB_BITMAP1 + i);
    }MemDC.CreateCompatibleDC(pDC);for (i = 0; i < 16; i++)
    {
      pOldBmp = MemDC.SelectObject(&bitmap[i]);
      pDC->BitBlt(rc[i].left, rc[i].top, rc[i].Width, rc[i].Height, &MemDC, 0, 0, SRCCOPY);//按rc的大小来copy
      MemDC.SelectObject(pOldBmp);
    }
    for (i = 0; i < 16; i++)
    {
     bitmap[i].DelectObject();
    }
    大致就是这样,没试过