?? 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 + -