我创建了一个位图,把它选到内存设备环境中,发现只能用单色,要想用彩色,我该怎么创建??CDC m_MemDC;
CPaintDC dc(this);
m_MemDC.CreateCompatibleDC(&dc);
HBITMAP m_hBitmap=CreateCompatibleBitmap(m_MemDC.m_hDC,400,300);
SelectObject(m_MemDC.m_hDC,m_hBitmap);

解决方案 »

  1.   

    CYourView::OnDraw(CDC* pDC)
    {
    CDC memDC;//定义一个兼容DC
    memDC.CreateCompatibleDC(pDC);//创建DC
    CBitmap bmpDraw;
    bmpDraw.LoadBitmap(ID_BMP);//装入DDB
    CBitmap* pbmpOld=memDC.SelectObject(&bmpDraw);//保存原有DDB,并选入新DDB入DC
    pDC->BitBlt(0,0,20,20,&memDC,0,0,SRCCOPY);//将源DC中(0,0,20,20)复制到目的DC(0,0,20,20)
    pDC->BitBlt(20,20,40,40,&memDC,0,0,SRCAND);//将源DC中(0,0,20,20)和目的DC(20,20,40,40)中区域进行AND操作
    memDC.SelectObject(pbmpOld);//选入原DDB
    }
      

  2.   

    我要在内存设备环境中select这张位图阿
      

  3.   

    可我要做的是一个绘图软件,要创建一个空的彩色位图,不是load进来的
      

  4.   

    CBitmap cbTemp;
    if(!cbTemp.CreateBitmap(bmpWidth,bmpHeight,1,24,NULL))
    {
          return;
    }
    BITMAP biTemp;
    cbTemp.GetBitmap(&biTemp);
    //biTemp 就是你要的空的彩色位图
      

  5.   

    CDC m_MemDC;
    CPaintDC dc(this);
    m_MemDC.CreateCompatibleDC(&dc);
    HBITMAP m_hBitmap=CreateCompatibleBitmap(dc.m_hDC,400,300);
    //here use dc instead of memdc now try again
    SelectObject(m_MemDC.m_hDC,m_hBitmap);
      

  6.   

    创建兼容dc不对
    CBitmap bmpMem
    bmpMem.CreateCompatibleBitmap(&dc,....,)