| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1145 人关注过本帖
标题:[求助]用DirectX的什么函数可以把内存中的图片显示到屏幕?
只看楼主 加入收藏
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
结帖率:100%
收藏
 问题点数:0 回复次数:2 
[求助]用DirectX的什么函数可以把内存中的图片显示到屏幕?
DirectX的什么函数可以把内存中的图片显示到屏幕?
搜索更多相关主题的帖子: DirectX 内存 函数 屏幕 
2007-03-24 16:55
tiancaiak
Rank: 2
等 级:论坛游民
威 望:1
帖 子:111
专家分:43
注 册:2006-9-17
收藏
得分:0 
Blt()和BltFast()
不过在这之前要把图片加到表面上:
BOOL LoadBMPSurface(LPDIRECTDRAWSURFACE7 &lpDDS,LPCSTR pszBitmapFile)
{
HBITMAP hbm;
BITMAP bm;
HDC hdc1,hdc2;
HRESULT hr;
if(lpDDS==NULL)
{
MessageBox(m_hWnd,"未创建的DirectDrawNULL离屏表面","出错啦",0);
return FALSE;
}
hbm=(HBITMAP)LoadImage(NULL,pszBitmapFile,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
if(hbm==NULL)
{
MessageBox(m_hWnd,"无法加载Bitmap文件","出错啦啦",0);
DeleteObject(hbm);
return FALSE;
}
hdc1=CreateCompatibleDC(NULL);
if(hdc1==NULL)
{
MessageBox(m_hWnd,"无法创建兼容DC","出错啦",0);
DeleteObject(hbm);
return FALSE;
}
SelectObject(hdc1,hbm);
GetObject(hbm,sizeof(bm),&bm);
DDSURFACEDESC2 ddsd;
memset(&ddsd,0,sizeof(ddsd));
ddsd.dwSize=sizeof(ddsd);
hr=lpDDS->GetSurfaceDesc(&ddsd);
if(hr!=DD_OK)
{
MessageBox(m_hWnd,"无法得到表面信息","出错啦",0);
DeleteDC(hdc1);
if(hbm)
DeleteObject(hbm);
return FALSE;
}
hr=lpDDS->GetDC(&hdc2);
if(hr!=DD_OK)
{
MessageBox(m_hWnd,"无法创建表面相关DC","出错啦",0);
DeleteDC(hdc1);
if(hbm)
DeleteObject(hbm);
return FALSE;
}
StretchBlt(hdc2,0,0,ddsd.dwWidth,ddsd.dwHeight,hdc1,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
lpDDS->ReleaseDC(hdc2);
if(hbm)
DeleteObject(hbm);
DeleteDC(hdc1);
return TRUE;
}

之后用Blt()或BltFast()把加有图片的那个表画贴到主表画上

2007-03-24 18:09
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
我是想利用API钩子,勾住这个函数,以达到游戏截图的目的

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2007-03-25 08:37
快速回复:[求助]用DirectX的什么函数可以把内存中的图片显示到屏幕?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015314 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved