游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3420|回复: 8

请问怎么样才能在另一个3D程序中显示文字或图片啊?

[复制链接]

7

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2006-3-28 10:33:00 | 显示全部楼层 |阅读模式

有个Fraps 的软件 可以在别的3D游戏中显示渲染帧数,

我也想做一个类似的软件,

请问怎么样才能在另一个3D程序中显示文字或图片啊? [em24]

2

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2006-3-28 11:30:00 | 显示全部楼层

Re:请问怎么样才能在另一个3D程序中显示文字或图片啊?

取得窗口句柄,截取OnPaint事件的消息

7

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2006-3-28 15:55:00 | 显示全部楼层

Re:请问怎么样才能在另一个3D程序中显示文字或图片啊?

晕倒啊,,,3D游戏哪有OnPaint什么事件!

就是不知是不是要挂接API   
IDirect3DDevice9::BeginScene  
IDirect3DDevice9::EndScene

这些都不是API函数吧!

7

主题

60

帖子

68

积分

注册会员

Rank: 2

积分
68
发表于 2006-3-28 18:24:00 | 显示全部楼层

Re:请问怎么样才能在另一个3D程序中显示文字或图片啊?

我想,你要影响另一个进程,应该脱离不了DLL注入技术的那三种方法吧.

7

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2006-3-29 14:20:00 | 显示全部楼层

Re:请问怎么样才能在另一个3D程序中显示文字或图片啊?

是啊,但是D3D9里的导出函数表里函数太少了,我只看到一个Direct3DCreat9()

不知道要怎么挂接才能在另一个3D程序中显示文字或图片啊?

7

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2006-3-31 14:15:00 | 显示全部楼层

Re:请问怎么样才能在另一个3D程序中显示文字或图片啊?

以前的高手们去哪里了啊,

是不是高手都走光了!!!!!!!!!!!!!111

2

主题

6

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2006-4-1 09:14:00 | 显示全部楼层

Re: 请问怎么样才能在另一个3D绦蛑邢允疚淖只蛲计?。?>

//此函数必要在DirectX初始化完成后使用
bmpImage=LoadInterfaceImage("Background.bmp",0);

//载入图片
IDirect3DSurface9* LoadInterfaceImage(LPCTSTR sName,D3DCOLOR ColorKey)
{  
        IDirect3DSurface9* suf=NULL;
        D3DXIMAGE_INFO imageInfo;
        int Width=0,Heigth=0;
        hResult = D3DXGetImageInfoFromFile(sName, &imageInfo);
        if (FAILED (hResult))return NULL;
        Width=imageInfo.Width;
        Heigth=imageInfo.Height;

        hResult = pd3dDevice->CreateOffscreenPlainSurface(Width, Heigth, D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, &suf, NULL);
    if (FAILED(hResult))return NULL;
        hResult = D3DXLoadSurfaceFromFile( suf,NULL,NULL,sName,NULL,D3DX_DEFAULT,ColorKey,NULL );
    if ( FAILED( hResult ) )
    {
        MessageBox(NULL,"Load image file error!","error",MB_OK);
    }
    return suf;
}

//渲染

void render(void)
{
// Check to make sure you have a valid Direct3D device
IDirect3DSurface9* backbuffer = NULL;
if( NULL == pd3dDevice )
return;// Clear the back buffer to a blue color
pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET,
D3DCOLOR_XRGB( 0,0,250 ), 1.0f, 0 );
pd3dDevice->GetBackBuffer( 0,0,D3DBACKBUFFER_TYPE_MONO,&backbuffer );
pd3dDevice->StretchRect( bmpImage,NULL,backbuffer,NULL,D3DTEXF_NONE );
pd3dDevice-&gtresent( NULL, NULL, NULL, NULL );
}

7

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2006-4-1 12:52:00 | 显示全部楼层

Re:请问怎么样才能在另一个3D程序中显示文字或图片啊?

在本站查找HOOK 及传奇 窗口化 相关资料 可以得到一些提示

7

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2006-4-3 11:49:00 | 显示全部楼层

Re:请问怎么样才能在另一个3D程序中显示文字或图片啊?

re :bingwater
谢谢你的代码,   但我还是不明白,

我要在别人的3D程式中显示图片,     pd3dDevice 怎么得到这个指针呢?

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-24 02:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表