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

📄 message.h

📁 一个自己写的游戏引擎,用DirectX 写成
💻 H
字号:
//--------------------------------------------------
//  Desc: 消息系统
//  Date: 2006.10.30 /update
//  Author: artsylee
//
//  Copyright (C) 2006 artsylee
//
//	扩展: 增加一个指针参数(2006_11_24)
//
//--------------------------------------------------

#ifndef _MESSAGE_
#define _MESSAGE_

#include <Windows.h>
#include <vector>

#define MESSAGE_DELAY	10000

// 系统消息类型
#define MSG_SYS_GUI			0xff000001L
#define MSG_SYS_LOSTDEVICE	0xff000002L 

class ASE_DLL CMessage
{
public:
	DWORD m_dwType;			// 类型
	DWORD m_dwSource;		// 来源
	DWORD m_dwDestination;  // 目的
	DWORD m_dwParam1;		// 参数1
	DWORD m_dwParam2;		// 参数2
	void* m_pParam3;		// 指针参数

	DWORD m_dwGenerate;		// 产生时间
	DWORD m_dwDelay;		// 执行时间(在此之后)
	DWORD m_dwAvail;		// 有效时间(在此之前)

	CMessage();
	CMessage(DWORD type, DWORD source = 0, DWORD dest = 0);
	~CMessage();
	void SetDelay(DWORD delay);
	void SetAvail(DWORD avail);
	void SetParameter(DWORD param1 = 0, DWORD param2 = 0, void* param3 = NULL);
};

class ASE_DLL CMessageManager
{
public:
	CMessageManager();
	~CMessageManager();

	void PostMessage(CMessage msg);
	void Begin();
	bool PeekMessage(CMessage &msg, bool bRemove = true);
	bool PeekMessage(int &index, CMessage &msg, bool bRemove = true);
	void DeleteMessage(DWORD type);
	void RemoveAll();

protected:
	std::vector<CMessage>				m_msgVector;
	std::vector<CMessage>::iterator		m_msgItor;
};

extern CMessageManager *g_pMessageManager;

ASE_DLL void __stdcall PostMessage(CMessage msg);
ASE_DLL bool __stdcall PeekMessage(int &index, CMessage &msg, bool bRemove = true);
ASE_DLL void __stdcall RemoveAllMessage();

#endif // _MESSAGE

⌨️ 快捷键说明

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