⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hdirectdraw.h

📁 VC++高级编程技巧与示例
💻 H
字号:
// HDirectDraw.h: interface for the CDirectDraw class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_HDIRECTDRAW_H__18E9574B_69DD_11D2_945B_0000000038B2__INCLUDED_)
#define AFX_HDIRECTDRAW_H__18E9574B_69DD_11D2_945B_0000000038B2__INCLUDED_

#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 "string.h"
#define PRIM_SURF 0
#define BACK_SURF 1

static BOOL SaveInfo(LPCTSTR fn, LPCTSTR msg)
{
	FILE *fp;
	if((fp=fopen(fn,"wt"))==NULL)
	{
		MessageBox(NULL,"Can't save info!","Error:",MB_OK);
		return FALSE;
	}
	fprintf(fp,msg);
	fclose(fp);
	return TRUE;
}

static BOOL SaveInfo(LPCTSTR fn, DWORD val)
{
	FILE *fp;
	if((fp=fopen(fn,"wt"))==NULL)
	{
		MessageBox(NULL,"Can't save info!","Error:",MB_OK);
		return FALSE;
	}
	fprintf(fp,"%d",val);
	fclose(fp);
	return TRUE;
}

class CDirectDraw  
{
private:
		BOOL Created;
public:
	BOOL Restore();
	IDirectDrawPalette * m_Palette;
	BOOL m_bPaletteCreated;



	UINT WindowHeight;
	UINT WindowWidth;
	UINT BPP;
	HRESULT ErrorMessageBox(HRESULT hRet,
							LPCTSTR szError,...
							);
	BOOL SetPalette(LPCSTR fn);
	BOOL MoveTo(int x,int y);
	void GetClientRect(RECT &rc);
	BOOL ClearBackBuffer();
	BOOL SetTimer(UINT tid,UINT dly);
	BOOL CreateDDrawWnd(
						HINSTANCE hInstance,
						int nCmdShow,
					    long (FAR PASCAL * WindowProc)
									(
									 HWND,
									 UINT,
									 WPARAM,
									 LPARAM
									 ),
						LPCTSTR Title="DirectDraw Window"
					    );
	BOOL Flip();
	void SetBkColor(COLORREF clr);
	void SetTextColor(COLORREF clr);
	void ReleaseDC();
	void GetDC(LPDIRECTDRAWSURFACE7 sf);
	void TextOut(int x, int y,LPCTSTR str);
	BOOL CloseDDraw();
    WNDCLASS wc;
	HWND hWnd;
	HDC hDC;

	BOOL InitDDraw(
				   DWORD w=640,
				   DWORD h=480,
				   DWORD bpp=8,
				   DWORD CoLevel=DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN,
				   DWORD bbn=1
				   );
	CDirectDraw();
	virtual ~CDirectDraw();
	IDirectDraw7 * lpDD;
	LPDIRECTDRAWSURFACE7 lpDDSPrimary;
	LPDIRECTDRAWSURFACE7 lpDDSBack;
	LPDIRECTDRAWSURFACE7 GDISurf;//GDI绘图时所针对的表面
	LPDIRECTDRAWPALETTE lpDDPal;
private:
	BOOL GetDCOK;
};
#endif // !defined(AFX_HDIRECTDRAW_H__18E9574B_69DD_11D2_945B_0000000038B2__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -