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

📄 win.h

📁 【概要】 名称:DK的《贪吃蛇》-附源代码 版本:1.0.0.0 运行环境:Win9X/Me/NT/2000/XP/2003/Vista 开发环境:WinXp+VC6 软件开发者:FanSi
💻 H
字号:
#pragma once

/*
** Callback protoype used by my
*/
typedef bool (*myCallback)();
typedef bool (*myRenderFunc)(HDC);

enum myFuncState
{
	my_FRAMEFUNC		= 8,    // bool*()	frame function		(default: NULL) (you MUST set this)
	my_RENDERFUNC		= 9,    // bool*()	render function		(default: NULL)
	my_FREEFUNC			= 10,	// bool*()	free function	(default: NULL)
};

class KWindow
{
protected:

	// System States
	bool				(*procFrameFunc)();
	bool				(*procRenderFunc)(HDC);
	bool				(*procFreeFunc)();

	int m_iFrameDelay;   //FPS
	int m_iWidth, m_iHeight;

	HDC m_hOffscreenDC;
	HBITMAP  m_hOffscreenBitmap;



	virtual void System_SetStateFunc(myFuncState   state, myCallback value);

	virtual void OnDraw(HDC hDC)
	{
	}

	virtual void OnKeyDown(WPARAM wParam, LPARAM lParam)
	{
	}
    
	virtual LRESULT WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

	virtual void GetWndClassEx(WNDCLASSEX & wc);

	static LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
   
	HRESULT CommonMDIChildProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, 
		HMENU hMenu, int nWindowMenu);

	HPALETTE m_hPalette;
	int		 m_nUpdateCount;

	virtual LRESULT OnQueryNewPalette(void);
	virtual LRESULT OnPaletteChanged(HWND hWnd, WPARAM wParam);

	bool    m_bMainWindow;

public:
	inline void					System_SetState(myFuncState   state, myCallback value) { System_SetStateFunc  (state, value); }

	HWND  m_hWnd;

	KWindow(void)
	{
		m_hWnd		   = NULL;
		m_hPalette	   = NULL;
		m_nUpdateCount = 0;
		m_iFrameDelay =20;
		procFrameFunc = NULL;
		procRenderFunc = NULL;
		procFreeFunc = NULL;
		m_bMainWindow  = false;
	}

	virtual ~KWindow(void)
	{
		DeleteObject(m_hOffscreenBitmap);
		DeleteDC(m_hOffscreenDC);  


		if ( m_hPalette )
		{
			DeleteObject(m_hPalette);
			m_hPalette = NULL;
		}
	}
    
	virtual bool CreateEx(DWORD dwExStyle, LPCTSTR lpszClass, LPCTSTR lpszName, DWORD dwStyle, 
		int nWidth, int nHeight, HWND hParent, HMENU hMenu, HINSTANCE hInst);

	bool RegisterClass(LPCTSTR lpszClass, HINSTANCE hInst);

	virtual WPARAM MessageLoop(void);

	BOOL ShowWindow(int nCmdShow) const
	{
		return ::ShowWindow(m_hWnd, nCmdShow);
	}

	BOOL UpdateWindow(void) const
	{
		return ::UpdateWindow(m_hWnd);
	}
};


int MyMessageBox(HWND hWnd, const TCHAR * text, const TCHAR * caption, DWORD style, int iconid);

⌨️ 快捷键说明

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