两个CreateCompatibleDC创造的HDC之间可以拷贝吗,该怎么处理

两个CreateCompatibleDC创造的HDC之间可以拷贝吗
两个CreateCompatibleDC创造的HDC之间可以拷贝吗

pipan   =   (HBITMAP)LoadImage(NULL, "chessPan.bmp ",IMAGE_BITMAP,455,501,LR_LOADFROMFILE);  
ch   =   (HBITMAP)LoadImage(NULL, "chess.bmp ",IMAGE_BITMAP,170,79,LR_LOADFROMFILE);  
ch_m   =   (HBITMAP)LoadImage(NULL, "chessMask.bmp ",IMAGE_BITMAP,170,79,LR_LOADFROMFILE);


CDC   *cdc   =   this-> GetDC();
hdc   =   cdc-> m_hDC;


mdc   =   CreateCompatibleDC(hdc);
pipan_dc   =   CreateCompatibleDC(hdc);
ch_dc   =   CreateCompatibleDC(hdc);
chm_dc   =   CreateCompatibleDC(hdc);
temp_dc   =   CreateCompatibleDC(hdc);


SelectObject(pipan_dc,::theApp.pipan);//pipan里面是棋盘位图
SelectObject(ch_dc,::theApp.ch);//ch里面是棋子位图
SelectObject(chm_dc,::theApp.ch_m);/棋子遮罩层位图



this-> ReleaseDC(cdc);


。。。。。。。。。。。。。。。。。。。


然后
BitBlt(mdc,0,0,800,600,pipan_dc,0,0,SRCCOPY);
BitBlt(dc.m_hDC,0,0,800,600,mdc,0,0,SRCCOPY);
这样什么也画不出


BitBlt(dc.m_hDC,0,0,800,600,pipan_dc,0,0,SRCCOPY);
这样画出了

究竟是什么原因呢?



------解决方案--------------------
mdc也要select 一个bitmap
------解决方案--------------------
seakingw is right.
before any render calls in a memory device context,you must select a bitmap into it.