我的代码是这样的
CWnd *cwnd=FromHandle(hWnd);这个是要被截图的窗口句柄
CDC *robetDC=this->GetDC();这个是显示图片的窗口DC
CDC *gameDC=cwnd->GetDC();
CDC *gameMDC=new CDC;
gameMDC->CreateCompatibleDC(gameDC);
CBitmap *gameMap=new CBitmap;
gameMap->CreateCompatibleBitmap(gameMDC,100,100);
gameMDC->SelectObject(gameMap);
robetDC->BitBlt(50,50,50,50,gameMDC,20,20,SRCCOPY);
gameMap->DeleteObject();
gameMDC->DeleteDC();但是最后显示出来的只是一片黑色区域
是不是代码哪里出问题了
请高手给予解释
CWnd *cwnd=FromHandle(hWnd);这个是要被截图的窗口句柄
CDC *robetDC=this->GetDC();这个是显示图片的窗口DC
CDC *gameDC=cwnd->GetDC();
CDC *gameMDC=new CDC;
gameMDC->CreateCompatibleDC(gameDC);
CBitmap *gameMap=new CBitmap;
gameMap->CreateCompatibleBitmap(gameMDC,100,100);
gameMDC->SelectObject(gameMap);
robetDC->BitBlt(50,50,50,50,gameMDC,20,20,SRCCOPY);
gameMap->DeleteObject();
gameMDC->DeleteDC();但是最后显示出来的只是一片黑色区域
是不是代码哪里出问题了
请高手给予解释
解决方案 »
- 为什么微软要让.net技术取代com/dcom/windows dna
- 求教cfile写文件,format格式问题
- 如何在弹出对话框中进行数据关联?
- CEdit 类的 SetLimiText 限制不了?
- WM_KEYDOWN或者WM_CHAR消息附加参数lParam问题
- 给所有程序员拜年了.
- CPtrArray具体怎么用
- 关于code project上的文件下载
- vc里怎么修改对话框的边框和按钮的样式?
- MFC Edit或者下拉列表中,输入信息时,怎样自动和数据库中存在的信息匹配,联想输入
- 在对话框类调用CView类
- vc的dsw,dsp项目工程的奇怪问题【生成的都是中文版本的文件】,遇到过的进来看下
===========================
用错了,这个函数一个是创建一个兼容的DC,不是你这样用的。
CWnd *cwnd=FromHandle(hWnd);这个是要被截图的窗口句柄
CDC *robetDC=this->GetDC();这个是显示图片的窗口DC
CDC *gameDC=cwnd->GetDC();
CDC *gameMDC=new CDC;
robertDC->CreateCompatibleDC(gameDC); //这句改成这样就行了。
CBitmap *gameMap=new CBitmap;
gameMap->CreateCompatibleBitmap(gameMDC,100,100);
gameMDC->SelectObject(gameMap);
robetDC->BitBlt(50,50,50,50,gameMDC,20,20,SRCCOPY);
gameMap->DeleteObject();
gameMDC->DeleteDC();
CDC *robetDC=this->GetDC();这个是显示图片的窗口DC
CDC *gameDC=cwnd->GetDC();
CDC *gameMDC=new CDC;
gameMDC->CreateCompatibleDC(gameDC);
CBitmap *gameMap=new CBitmap;
gameMap->CreateCompatibleBitmap(gameMDC,100,100);
gameMDC->SelectObject(gameMap); gameMDC->BitBlt(0,0,100,100,gameDC,0,0,SRCCOPY);
robetDC->BitBlt(50,50,50,50,gameMDC,20,20,SRCCOPY);
gameMap->DeleteObject();
gameMDC->DeleteDC();
CDC *robetDC=this->GetDC();这个是显示图片的窗口DC
CDC *gameDC=cwnd->GetDC();
//CDC *gameMDC=new CDC;
//gameMDC->CreateCompatibleDC(gameDC);
//CBitmap *gameMap=new CBitmap;
//gameMap->CreateCompatibleBitmap(gameMDC,100,100);
//gameMDC->SelectObject(gameMap); robetDC->BitBlt(50,50,50,50,gameDC,20,20,SRCCOPY);
//gameMap->DeleteObject();
//gameMDC->DeleteDC();