📄 hddrawsurf.h
字号:
// HDDrawSurf.h: interface for the CDDrawSurf class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_HDDRAWSURF_H__7E644D24_9611_11D4_A599_0000000038B2__INCLUDED_)
#define AFX_HDDRAWSURF_H__7E644D24_9611_11D4_A599_0000000038B2__INCLUDED_
#include "HDirectDraw.h" // Added by ClassView
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "stdafx.h"
#include "stdio.h"
#include <windows.h>
#include <windowsx.h>
#include <ddraw.h>
#include "HDib.h" // Added by ClassView
typedef struct
{
DWORD m_bFromFile;//如果为1,则从文件中直接提取位图;
char fn[255]; //存储图象数据的文件名;
DWORD XS; //表面数据在位图中的X坐标;
DWORD YS; //表面数据在位图中的Y坐标;
DWORD Width; //表面宽度;
DWORD Height; //表面高度;
DWORD BPP; //表面色彩深度;
DWORD DisplayBPP; //DDraw显示模式的颜色深度;
DWORD Bpl; //位图文件每一行的字节数;
BYTE * buf; //存储图象数据的缓冲区地址;
LPDIRECTDRAWSURFACE7 lpDestSurf;//生成的表面将要Blit到lpDestSurf表面;
LPDIRECTDRAW7 lpDD; //DirectDraw对象;
DWORD clrkeyFlags; //使用透明色的选项;
COLORREF Colorkey; //透明色
}_SURFACE_DATA;
//用于创建一个表面的类:
class CDDrawSurf
{
protected:
//成员变量:
BYTE * Buffer;//指向图形数据的指针;
CDib * m_Dib;
LPDIRECTDRAWSURFACE7 lpSourceSurf;//生成的表面;
_SURFACE_DATA m_Dat;
//成员函数:
BYTE * FindPos();
void LoadBmpFromFile();
void AssignBuffer();
BOOL CopyPixels();
public:
void Delete();
void SaveBltError(HRESULT re);
BOOL Restore();
BOOL CopyPixels24to32();
BOOL SetColorKey(COLORREF clr=RGB(0,0,0));
//成员函数:
CDDrawSurf();
virtual ~CDDrawSurf();
LPDIRECTDRAWSURFACE7 Create(_SURFACE_DATA * dat);
BOOL Blit(int x, //Blit到X处;
int y, //Blit到Y处;
unsigned uck=TRUE//是否使用透明色;
);
void DestroySurface();
};
#endif // !defined(AFX_HDDRAWSURF_H__7E644D24_9611_11D4_A599_0000000038B2__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -