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

📄 gsui.h

📁 连连看这个游戏都玩过吧
💻 H
字号:
           // GsUI.h: interface for the CGsUIPanel class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_GSUI_H__E68CAE40_5F5B_48DF_A021_BD5A7033C9B5__INCLUDED_)
#define AFX_GSUI_H__E68CAE40_5F5B_48DF_A021_BD5A7033C9B5__INCLUDED_

#include "GSLib.h"	// Added by ClassView
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

enum	_UI_CMD
{
	UI_CMD_START	= 0xBE00,
	UI_CMD_CLICK,
	UI_CMD_PRESS,
	UI_CMD_DBCLK,
	UI_CMD_END
};
typedef _UI_CMD UICMD;


class GSLIB_API CGsUIPanel  
{
	friend CGsEngine;
	friend CGsGame;


public:
	VOID	PickScreenToClient(GPOINT &point);

	BOOL	IsVisible();
	BOOL	IsEnable();
	BOOL	IsWorking();
	BOOL	IsFocus()							{return m_isFocus;}

public:
	VOID	SetTopMost();
	VOID	SetVisible(BOOL bVisible)				{m_isVisible = bVisible;}
	VOID	SetEnable(BOOL bEnable);//				{m_isEnable	= bEnable;}
	VOID	SetFocus(BOOL bFocus=TRUE);

	BOOL	IsStyleChecked()					{return m_is_checked_style;}
	VOID	SetStyleChecked(BOOL bStyleChecked)	{m_is_checked_style = bStyleChecked;}

	BOOL	IsChecked()							{return m_isChecked;}
	VOID	SetChecked(BOOL bChecked);//			{m_isChecked = bChecked;}

	ID		GetID()		{return m_ID;}

	const char*	GetStyle()		{return m_key_style.c_str();}
	const char*	GetBaseStyle()		{return m_key_base_style.c_str();}
	const char*	GetName()		{return m_key.c_str();}
	const char* GetConfig()		{return m_key_config.c_str();}
	VOID	SetStyle(const char* str)			{m_key_style = str;}
	VOID	SetBaseStyle(const char* str)			{m_key_base_style = str;}
	VOID	SetName(const char* str)			{m_key = str;}

	CGsEngine*	GetGsEngine()				{return m_pEngine;}
	CGsUIPanel* GetParent()					{return m_pParent;}


	DWORD	GetPressCount()					{return m_dwPressCount;}

	BOOL	Create(const char* strConfig, LPCSTR strItem="MAIN", GPOINT point = GPOINT(0,0), const char* strName=NULL);
	virtual BOOL Restore();
	virtual BOOL	SaveConfig(const char* strConfig=NULL);


	virtual	VOID	CloseDialog();

//	HRESULT	Draw();

	CGsUIPanel(CGsUIPanel*	pParent);
	CGsUIPanel(CGsEngine*	pEngine);
	virtual ~CGsUIPanel();

public:
	VOID SetImageDisable(const char* strImage);
	VOID SetImageNormalTouch(const char* strImage);
	VOID SetImageNormal(const char* strImage);
	VOID SetImagePressTouch(const char* strImage);
	VOID SetImagePress(const char* strImage);
	VOID SetImageSense(const char* strImage);
	VOID SetSoundTouch(const char* strSound);
	VOID SetSoundClick(const char* strSound);
	VOID SetBackLayer(BOOL bBackLayer);
	virtual VOID SetImage(const char* strKey, const char* strImage);
	VOID SetSize(const GPOINT &point);
	VOID SetHeaderRect(const GRECT &rc);
	VOID SetCanMove(BOOL bCanMove);
	VOID SetBackMost();

	BOOL IsCanMove()				{return m_can_move;}
	BOOL IsBackLayer()				{return m_isBackLayer;}
	const char*		GetImageNormal()	{return m_image_normal.GetKey();}
	const char*		GetImageNormalTouch()	{return m_image_normal_touch.GetKey();}
	const char*		GetImagePress()	{return m_image_press.GetKey();}
	const char*		GetImagePressTouch()	{return m_image_press_touch.GetKey();}
	const char*		GetImageSense()	{return m_image_sense.GetKey();}
	const char*		GetImageDisable()	{return m_image_disable.GetKey();}
	const char*		GetSoundTouch()		{return (m_sound_touch)?m_sound_touch->GetKey():NULL;}
	const char*		GetSoundTClick()		{return (m_sound_click)?m_sound_click->GetKey():NULL;}
	GPOINT GetSize()				{return GPOINT(m_rcClient.width(), m_rcClient.height());}
	GRECT GetHeaderRect()			{return m_rcHeader;}

	BOOL	IsTextbox()				{return m_isCaption;}
	VOID	SetTextbox(BOOL bTextbox)	{m_isCaption = bTextbox;}
	BOOL	IsCanEdit()				{return m_isCanEdit;}
	VOID	SetCanEdit(BOOL bCanEdit)	{m_isCanEdit = bCanEdit;}
	GSFONT* GetFont()				{return &m_font;}
	VOID	SetFont();
	const char*		GetCaption()	{return m_caption.c_str();}
	VOID	SetCaption(const char* caption);//			{m_caption = caption;}
	VOID	SetCaption(int nValue);
	D3DCOLOR GetColor()				{return m_color;}
	D3DCOLOR GetBkColor()			{return m_bk_color;}
	VOID	SetColor(D3DCOLOR color)		{m_color = color;}
	VOID	SetBkColor(D3DCOLOR color)		{m_bk_color = color;}
	UINT	GetAlign()				{return m_align;}
	VOID	SetAlign(UINT align)	{m_align = align;}


	HRESULT Draw(GPOINT point);
	VOID PickClientToScreen(GPOINT &point);
	virtual BOOL HitTest(GPOINT ptHit);

	virtual VOID	Cleanup();

	virtual HRESULT UpdateCaption();

//protected:
	virtual VOID UpdateState();

	VOID AddSubPanel(CGsUIPanel* pPanel);
	VOID DelSubPanel(CGsUIPanel* pPanel);
protected:

	virtual HRESULT RestoreSource();
	virtual VOID	ReleaseSource();


	virtual BOOL	OnSaveConfig(CConfig &cfg);

	virtual LONG	OnUpdate();
	virtual HRESULT	OnDraw(GPOINT point);					
	
	virtual VOID	OnTouch(BOOL bTouch);
	virtual VOID	OnClick();

	virtual ID	OnMouseMove( UINT nFlags, GPOINT point );
	virtual ID	OnMouseWheel( UINT nFlags, short zDelta, GPOINT point );
	virtual ID	OnLButtonDown( UINT nFlags, GPOINT point );
	virtual ID	OnLButtonUp( UINT nFlags, GPOINT point );
	virtual ID	OnLButtonDbClk( UINT nFlags, GPOINT point );
	virtual ID	OnRButtonDown( UINT nFlags, GPOINT point );
	virtual ID	OnRButtonUp( UINT nFlags, GPOINT point );
	virtual ID	OnRButtonDbClk( UINT nFlags, GPOINT point );
	virtual ID	OnChar( UINT nChar, UINT nRepCnt, UINT nFlags );
	virtual ID	OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
	virtual ID	OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);

	virtual VOID	OnNotify(ID ,KEY key)	{return;}

private:
	VOID _SetCtlBackMost(CGsUIPanel *pPanel);
	VOID _SetCtlTopMost(CGsUIPanel* pPanel);




protected:
	virtual BOOL HitTest_Drag(GPOINT point);
	virtual BOOL HitTest_Press(GPOINT point);
	virtual BOOL HitTest_Touch(GPOINT point);
	CGsEngine*				m_pEngine;
	CGsUIPanel*				m_pParent;
	CConfig					config;

	GRECT					m_rcClient;
	GRECT					m_rcHeader;
	BOOL					m_isVisible;
	BOOL					m_isFocus;
	BOOL					m_isEnable;
	BOOL					m_isTouch;

	BOOL					m_is_checked_style;
	BOOL					m_isChecked;
	
	BOOL					m_isPress;
	DWORD					m_dwPressTime;				//用于连击按键效果
	DWORD					m_dwPressCount;				//用于连击按键效果
	GPOINT					m_ptBeginDrag;
	BOOL					m_isDrag;

	BOOL					m_isBackLayer;
	BOOL					m_can_move;
	//key
	KEY						m_key;
	KEY						m_key_config;
	KEY						m_key_style;
	KEY						m_key_base_style;
	KEY						m_key_item;

	BOOL					m_isCaption;
	BOOL					m_isNumber;
	BOOL					m_isCanEdit;
	DESC					m_caption;
	GSFONT					m_font;
	HFONT					m_hfont;
	UINT					m_align;
	D3DCOLOR				m_color;

	D3DCOLOR				m_bk_color;

	ID						m_ID;
	//Image
	GSANI					m_image_normal;
	GSANI					m_image_normal_touch;

	GSANI					m_image_press;
	GSANI					m_image_press_touch;

	GSANI					m_image_disable;

	GSANI					m_image_sense;

	LPGSANI					m_pImage;

	//sound
	CGsSound*				m_sound_touch;
	CGsSound*				m_sound_click;
	
	virtual LRESULT MsgProc( UINT uMsg, WPARAM wParam, LPARAM lParam );
	CGsUIPanel*				m_pDlg;
	typedef					std::list<CGsUIPanel*> PANEL_ARRAY;
	PANEL_ARRAY				m_panel_array;

	CGsTexture				m_tex_caption;
//	typedef					std::map<KEY, CGsUIPanel*>	PANEL_MAP;
//	PANEL_MAP				m_panel_map;

};


class GSLIB_API GS_UI_Button : public CGsUIPanel  
{
public:
	virtual BOOL Restore();
	
	virtual ID OnLButtonDbClk( UINT nFlags, GPOINT point );
	VOID Cleanup();
	GS_UI_Button(CGsUIPanel*	pParent);
	virtual ~GS_UI_Button();
	
	


protected:
	virtual BOOL	OnSaveConfig(CConfig &cfg);

	virtual LONG	OnUpdate();
	virtual HRESULT OnDraw(GPOINT point);

	virtual ID	OnMouseMove( UINT nFlags, GPOINT point );
	virtual ID	OnLButtonDown( UINT nFlags, GPOINT point );
	virtual ID	OnLButtonUp( UINT nFlags, GPOINT point );


protected:
	virtual BOOL HitTest_Press(GPOINT point);
	virtual VOID OnPress(BOOL bPress);
	virtual VOID OnTouch(BOOL bTouch);

	

private:

};


class GSLIB_API GS_UI_Layer : public CGsUIPanel  
{
public:
	GS_UI_Layer(CGsUIPanel*	pParent);
	virtual ~GS_UI_Layer();


protected:
	virtual LONG	OnUpdate();
	virtual HRESULT OnDraw(GPOINT point);


protected:
	float m_alpha;
	float m_red;
	float m_green;
	float m_blue;
	float m_out_size;
	BOOL  m_isSolidOrFrame;

};


class GSLIB_API GS_UI_ActiveCaption : public CGsUIPanel  
{
	struct _SHOW_LINE
	{
		DESC	caption;
		float	pos_x;
		float	pos_y;
		float	full_show;
		float	end_show;
		int		width;
		int		height;
	};
	struct _CAPTION_LINE
	{
		DESC	caption;
		LONG	width;
		LONG	height;
	};

	HRESULT UpdateCaptionEx();
public:
	VOID SetFlash(BOOL bFlash=FALSE);//	{m_is_flash = bFlash;}
	GS_UI_ActiveCaption(CGsUIPanel*	pParent);
	virtual ~GS_UI_ActiveCaption();
	virtual HRESULT UpdateCaption();
	virtual BOOL Restore();
protected:
	BOOL AddShowLine();
	virtual LONG	OnUpdate();
	virtual HRESULT OnDraw(GPOINT point);
//	virtual HRESULT OnDraw(GPOINT point);

	float	m_speed_x;
	float	m_speed_y;

	LONG	m_caption_width;
	LONG	m_caption_height;

	LONG	m_space_size;

	float	m_pos_x;
	float	m_pos_y;

	int		m_current_line;

	BOOL	m_is_flash;

	std::list<_SHOW_LINE>			m_show_list;
	std::vector<_CAPTION_LINE>		m_caption_buf;

};

#endif // !defined(AFX_GSUI_H__E68CAE40_5F5B_48DF_A021_BD5A7033C9B5__INCLUDED_)

⌨️ 快捷键说明

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