📄 csnapshot.cpp
字号:
#include <d3dx9tex.h>
#include "CSnapshot.h"
#include "normal.h"
#include "FileHelper.h"
#include "CAppWnd.h"
extern CAppWnd theAppWnd;
CSnapshot::CSnapshot()
{
m_bEnable = false;
m_szFileName = NULL;
}
CSnapshot::~CSnapshot()
{
SafeDeleteArray( m_szFileName );
}
bool CSnapshot::Init()
{
m_szFileName = new char[128];
if ( m_szFileName == NULL )
return false;
return true;
}
void CSnapshot::Free()
{
SafeDeleteArray( m_szFileName );
}
void CSnapshot::ScreenShot( char *filename, IDirect3DDevice9 *pD )
{
IDirect3DSurface9 *tmp = NULL;
IDirect3DSurface9 *back = NULL;
//D3DDISPLAYMODE dm;
//pD->GetDisplayMode( 0, &dm );
pD->GetBackBuffer( 0, 0, D3DBACKBUFFER_TYPE_MONO, &back );
pD->CreateOffscreenPlainSurface( 640, 480, D3DFMT_A8R8G8B8,
D3DPOOL_DEFAULT, &tmp, NULL );
D3DXLoadSurfaceFromSurface( tmp, NULL, NULL, back, NULL, NULL, D3DX_DEFAULT, 0 );
D3DXSaveSurfaceToFile( filename, D3DXIFF_BMP, tmp, NULL, NULL );
SafeRelease( tmp );
SafeRelease( back );
}
void CSnapshot::ScreenShot( IDirect3DDevice9 *pD )
{
if ( m_bEnable == false || pD == false ) return;
ScreenShot( m_szFileName, pD );
m_bEnable = false;
}
void CSnapshot::EnableSnapshot()
{
char szFilter[] = "BMP Files (*.BMP)\0*.bmp\0";
if ( GetFileName( theAppWnd.GetHWnd(), m_szFileName, 128, szFilter ) != 0 )
m_bEnable = true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -