两个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.
两个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.