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

📄 menu.h

📁 一个简单的地图编辑器的源码,很适合用来学习
💻 H
字号:
//    ████████████
//    ██╭------------╮██
//    █╭╯ Menu.h		╰╮█
//    █|	菜单类头文件  |█
//    █╰----------------╯█
//    ████████████

#if !defined(AFX_MENU_H__85F73C78_057F_4EE3_8A0A_474170DD6A53__INCLUDED_)
#define AFX_MENU_H__85F73C78_057F_4EE3_8A0A_474170DD6A53__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <ddraw.h>

//------ 清除与重载的宏 -------//
#define SafeRelease(x) if (x) { x->Release(); x=NULL;}
#define SafeDelete(x) if (x) {delete x;x=NULL;}

#define ButtonMax 604

class CMenu
{
public:
	CMenu();
	virtual ~CMenu();

	void CreateButton(const LPCTSTR name,int x,int y);//创建按钮
	void Show();//显示图片
	void MouseDown();//鼠标按下判断
	void MouseMove();//鼠标移到判断
	bool IsEmpty() const {return MenuNum==0;}//菜单列栈中是否为空
	CMenu& CreateMenu(const LPCTSTR MenuName,int x,int y,bool havebutton);//创建菜单
	CMenu& DelMenu();//删除顶栈的窗体
//	void Alphi(int x,int y,int ALPHA);
	void ButtonOn(int buttonid,LPCTSTR buttonbmpname);//改变按钮
	void CreateTile(LPDIRECTDRAWSURFACE7 face);//创建Tile


	struct MenuNode
	{
		LPDIRECTDRAWSURFACE7 MenuSurface;		//窗体页面
		LPCTSTR MenuName;						//窗体名
		int MenuX,MenuY;						//窗体坐标
		int MenuWidth,MenuHeight;

		LPDIRECTDRAWSURFACE7 ButtonSurface[ButtonMax];	//按钮页面
		int ButtonID;							//按钮ID
		int ButtonX[ButtonMax],ButtonY[ButtonMax];			//按钮坐标
		int ButtonWidth[ButtonMax],ButtonHeight[ButtonMax];
		LPCTSTR ButtonName[ButtonMax];					//按钮名

		bool HaveButton;//是否是有按钮的菜单
		MenuNode* link;							//下一个菜单
	};

	MenuNode* top;//指向栈顶节点和后节点

	RECT destRect;

private:	
	typedef struct
	{
		RGBQUAD depth;		// How many bits of precision per channel
		RGBQUAD Position;	// At what bit position does the color start
		UINT bpp;
	} RGBFORMAT;

	RGBFORMAT		g_pixelFormat;

	LPDIRECTDRAWSURFACE7 BMPToSurface(LPCTSTR bmpname,int& width,int& height);
//	bool GetRGBFormat(LPDIRECTDRAWSURFACE7 surf, RGBFORMAT* rgb);


	
	int MenuNum;

};

void ButtonClick(LPCTSTR name);
void NotButtonClick(LPCTSTR name);

#endif // !defined(AFX_MENU_H__85F73C78_057F_4EE3_8A0A_474170DD6A53__INCLUDED_)

⌨️ 快捷键说明

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