322 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
		
		
			
		
	
	
			322 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
|  | /******************************************************
 | |||
|  |  * EasyX Library for C++ (Ver:20170827(beta)) | |||
|  |  * http://www.easyx.cn
 | |||
|  |  * | |||
|  |  * EasyX.h | |||
|  |  *	<EFBFBD><EFBFBD> VC <EFBFBD><EFBFBD>ʵ<EFBFBD>ּĻ<EFBFBD>ͼ | |||
|  |  ******************************************************/ | |||
|  | 
 | |||
|  | #pragma once
 | |||
|  | 
 | |||
|  | #ifndef WINVER
 | |||
|  | #define WINVER 0x0400			// Specifies that the minimum required platform is Windows 95 and Windows NT 4.0.
 | |||
|  | #endif
 | |||
|  | 
 | |||
|  | #ifndef _WIN32_WINNT
 | |||
|  | #define _WIN32_WINNT 0x0500		// Specifies that the minimum required platform is Windows 2000.
 | |||
|  | #endif
 | |||
|  | 
 | |||
|  | #ifndef _WIN32_WINDOWS
 | |||
|  | #define _WIN32_WINDOWS 0x0410	// Specifies that the minimum required platform is Windows 98.
 | |||
|  | #endif
 | |||
|  | 
 | |||
|  | 
 | |||
|  | #ifndef __cplusplus
 | |||
|  | #error EasyX is only for C++
 | |||
|  | #endif
 | |||
|  | 
 | |||
|  | 
 | |||
|  | #include <windows.h>
 | |||
|  | #include <tchar.h>
 | |||
|  | 
 | |||
|  | // <20><>ͼ<EFBFBD><CDBC><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | #define SHOWCONSOLE		1		// <20><><EFBFBD><EFBFBD>ͼ<EFBFBD>δ<EFBFBD><CEB4><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>ʾ
 | |||
|  | #define NOCLOSE			2		// û<>йرչ<D8B1><D5B9><EFBFBD>
 | |||
|  | #define NOMINIMIZE		4		// û<><C3BB><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | // <20><>ɫ
 | |||
|  | #define	BLACK			0
 | |||
|  | #define	BLUE			0xAA0000
 | |||
|  | #define	GREEN			0x00AA00
 | |||
|  | #define	CYAN			0xAAAA00
 | |||
|  | #define	RED				0x0000AA
 | |||
|  | #define	MAGENTA			0xAA00AA
 | |||
|  | #define	BROWN			0x0055AA
 | |||
|  | #define	LIGHTGRAY		0xAAAAAA
 | |||
|  | #define	DARKGRAY		0x555555
 | |||
|  | #define	LIGHTBLUE		0xFF5555
 | |||
|  | #define	LIGHTGREEN		0x55FF55
 | |||
|  | #define	LIGHTCYAN		0xFFFF55
 | |||
|  | #define	LIGHTRED		0x5555FF
 | |||
|  | #define	LIGHTMAGENTA	0xFF55FF
 | |||
|  | #define	YELLOW			0x55FFFF
 | |||
|  | #define	WHITE			0xFFFFFF
 | |||
|  | 
 | |||
|  | // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫת<C9AB><D7AA><EFBFBD><EFBFBD>
 | |||
|  | #define BGR(color)	( (((color) & 0xFF) << 16) | ((color) & 0xFF00FF00) | (((color) & 0xFF0000) >> 16) )
 | |||
|  | 
 | |||
|  | 
 | |||
|  | class IMAGE; | |||
|  | 
 | |||
|  | // <20><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʽ
 | |||
|  | class LINESTYLE | |||
|  | { | |||
|  | public: | |||
|  | 	LINESTYLE(); | |||
|  | 	LINESTYLE(const LINESTYLE &style); | |||
|  | 	LINESTYLE& operator = (const LINESTYLE &style);			// <20><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>
 | |||
|  | 	virtual ~LINESTYLE(); | |||
|  | 
 | |||
|  | 	DWORD	style; | |||
|  | 	DWORD	thickness; | |||
|  | 	DWORD	*puserstyle; | |||
|  | 	DWORD	userstylecount; | |||
|  | }; | |||
|  | 
 | |||
|  | class FILLSTYLE | |||
|  | { | |||
|  | public: | |||
|  | 	FILLSTYLE(); | |||
|  | 	FILLSTYLE(const FILLSTYLE &style); | |||
|  | 	FILLSTYLE& operator = (const FILLSTYLE &style);			// <20><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>
 | |||
|  | 	virtual ~FILLSTYLE(); | |||
|  | 
 | |||
|  | 	int			style;			// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
 | |||
|  | 	long		hatch;			// <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ʽ
 | |||
|  | 	IMAGE*		ppattern;		// <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
 | |||
|  | }; | |||
|  | 
 | |||
|  | // <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | class IMAGE | |||
|  | { | |||
|  | public: | |||
|  | 	int getwidth() const;	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>
 | |||
|  | 	int getheight() const;	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ĸ߶<C4B8>
 | |||
|  | 
 | |||
|  | private: | |||
|  | 	int width, height;		// <20><><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>
 | |||
|  | 	HBITMAP m_hBmp; | |||
|  | 	HDC m_hMemDC; | |||
|  | 	int m_MemCurX;			// <20><>ǰ<EFBFBD><C7B0>X<EFBFBD><58><EFBFBD><EFBFBD>
 | |||
|  | 	int m_MemCurY;			// <20><>ǰ<EFBFBD><C7B0>Y<EFBFBD><59><EFBFBD><EFBFBD>
 | |||
|  | 	float m_data[6]; | |||
|  | 	COLORREF	m_LineColor;		// <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | |||
|  | 	COLORREF	m_FillColor;		// <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | |||
|  | 	COLORREF	m_TextColor;		// <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | |||
|  | 	COLORREF	m_BkColor;			// <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | |||
|  | 	DWORD*		m_pBuffer;			// <20><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
 | |||
|  | 
 | |||
|  | 	LINESTYLE	m_LineStyle;		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
 | |||
|  | 	FILLSTYLE	m_FillStyle;		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
 | |||
|  | 
 | |||
|  | 	virtual void SetDefault();						// <20><><EFBFBD><EFBFBD>ΪĬ<CEAA><C4AC>״̬
 | |||
|  | 
 | |||
|  | public: | |||
|  | 	IMAGE(int _width = 0, int _height = 0);			// <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
 | |||
|  | 	IMAGE(const IMAGE &img);						// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>캯<EFBFBD><ECBAAF>
 | |||
|  | 	IMAGE& operator = (const IMAGE &img);			// <20><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>
 | |||
|  | 	virtual ~IMAGE(); | |||
|  | 	virtual void Resize(int _width, int _height);	// <20><><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD>
 | |||
|  | }; | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | // <20><>ͼģʽ<C4A3><CABD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>
 | |||
|  | 
 | |||
|  | HWND initgraph(int width, int height, int flag = NULL);	// <20><>ʼ<EFBFBD><CABC>ͼ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>
 | |||
|  | void closegraph();										// <20>ر<EFBFBD>ͼ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>
 | |||
|  | 
 | |||
|  | // <20><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | void cleardevice();					// <20><><EFBFBD><EFBFBD>
 | |||
|  | void setcliprgn(HRGN hrgn);			// <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0>ͼ<EFBFBD>豸<EFBFBD>IJü<C4B2><C3BC><EFBFBD>
 | |||
|  | void clearcliprgn();				// <20><><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | void getlinestyle(LINESTYLE* pstyle);						// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
 | |||
|  | void setlinestyle(const LINESTYLE* pstyle);					// <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
 | |||
|  | void setlinestyle(int style, int thickness = 1, const DWORD *puserstyle = NULL, DWORD userstylecount = 0);	// <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
 | |||
|  | void getfillstyle(FILLSTYLE* pstyle);						// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
 | |||
|  | void setfillstyle(const FILLSTYLE* pstyle);					// <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
 | |||
|  | void setfillstyle(int style, long hatch = NULL, IMAGE* ppattern = NULL);		// <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
 | |||
|  | void setfillstyle(BYTE* ppattern8x8);						// <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
 | |||
|  | 
 | |||
|  | void setorigin(int x, int y);							// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>
 | |||
|  | void getaspectratio(float *pxasp, float *pyasp);		// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | void setaspectratio(float xasp, float yasp);			// <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | int  getrop2();						// <20><>ȡǰ<C8A1><C7B0><EFBFBD>Ķ<EFBFBD>Ԫ<EFBFBD><D4AA>դ<EFBFBD><D5A4><EFBFBD><EFBFBD>ģʽ
 | |||
|  | void setrop2(int mode);				// <20><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>Ķ<EFBFBD>Ԫ<EFBFBD><D4AA>դ<EFBFBD><D5A4><EFBFBD><EFBFBD>ģʽ
 | |||
|  | int  getpolyfillmode();				// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
 | |||
|  | void setpolyfillmode(int mode);		// <20><><EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
 | |||
|  | 
 | |||
|  | void graphdefaults();				// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ΪĬ<CEAA><C4AC>ֵ
 | |||
|  | 
 | |||
|  | COLORREF getlinecolor();			// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | |||
|  | void setlinecolor(COLORREF color);	// <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | |||
|  | COLORREF gettextcolor();			// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | |||
|  | void settextcolor(COLORREF color);	// <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | |||
|  | COLORREF getfillcolor();			// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | |||
|  | void setfillcolor(COLORREF color);	// <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | |||
|  | COLORREF getbkcolor();				// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ɫ
 | |||
|  | void setbkcolor(COLORREF color);	// <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ɫ
 | |||
|  | int  getbkmode();					// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
 | |||
|  | void setbkmode(int mode);			// <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
 | |||
|  | 
 | |||
|  | // <20><>ɫģ<C9AB><C4A3>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | COLORREF RGBtoGRAY(COLORREF rgb); | |||
|  | void RGBtoHSL(COLORREF rgb, float *H, float *S, float *L); | |||
|  | void RGBtoHSV(COLORREF rgb, float *H, float *S, float *V); | |||
|  | COLORREF HSLtoRGB(float H, float S, float L); | |||
|  | COLORREF HSVtoRGB(float H, float S, float V); | |||
|  | 
 | |||
|  | 
 | |||
|  | // <20><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | COLORREF getpixel(int x, int y);				// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | |||
|  | void putpixel(int x, int y, COLORREF color);	// <20><><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | void moveto(int x, int y);						// <20>ƶ<EFBFBD><C6B6><EFBFBD>ǰ<EFBFBD><C7B0>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
 | |||
|  | void moverel(int dx, int dy);					// <20>ƶ<EFBFBD><C6B6><EFBFBD>ǰ<EFBFBD><C7B0>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
 | |||
|  | 
 | |||
|  | void line(int x1, int y1, int x2, int y2);		// <20><><EFBFBD><EFBFBD>
 | |||
|  | void linerel(int dx, int dy);					// <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
 | |||
|  | void lineto(int x, int y);						// <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
 | |||
|  | 
 | |||
|  | void rectangle	   (int left, int top, int right, int bottom);	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | void fillrectangle (int left, int top, int right, int bottom);	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>б߿<D0B1>)
 | |||
|  | void solidrectangle(int left, int top, int right, int bottom);	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>ޱ߿<DEB1>)
 | |||
|  | void clearrectangle(int left, int top, int right, int bottom);	// <20><><EFBFBD>վ<EFBFBD><D5BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | void circle		(int x, int y, int radius);		// <20><>Բ
 | |||
|  | void fillcircle (int x, int y, int radius);		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ(<28>б߿<D0B1>)
 | |||
|  | void solidcircle(int x, int y, int radius);		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ(<28>ޱ߿<DEB1>)
 | |||
|  | void clearcircle(int x, int y, int radius);		// <20><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | void ellipse	 (int left, int top, int right, int bottom);	// <20><><EFBFBD><EFBFBD>Բ
 | |||
|  | void fillellipse (int left, int top, int right, int bottom);	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ(<28>б߿<D0B1>)
 | |||
|  | void solidellipse(int left, int top, int right, int bottom);	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ(<28>ޱ߿<DEB1>)
 | |||
|  | void clearellipse(int left, int top, int right, int bottom);	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | void roundrect	   (int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight);		// <20><>Բ<EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD>
 | |||
|  | void fillroundrect (int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight);		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD>(<28>б߿<D0B1>)
 | |||
|  | void solidroundrect(int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight);		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD>(<28>ޱ߿<DEB1>)
 | |||
|  | void clearroundrect(int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight);		// <20><><EFBFBD><EFBFBD>Բ<EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | void arc	 (int left, int top, int right, int bottom, double stangle, double endangle);	// <20><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>(<28><>ʼ<EFBFBD>ǶȺ<C7B6><C8BA><EFBFBD>ֹ<EFBFBD>Ƕ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
 | |||
|  | void pie	 (int left, int top, int right, int bottom, double stangle, double endangle);	// <20><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>(<28><>ʼ<EFBFBD>ǶȺ<C7B6><C8BA><EFBFBD>ֹ<EFBFBD>Ƕ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
 | |||
|  | void fillpie (int left, int top, int right, int bottom, double stangle, double endangle);	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>(<28>б߿<D0B1>)
 | |||
|  | void solidpie(int left, int top, int right, int bottom, double stangle, double endangle);	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>(<28>ޱ߿<DEB1>)
 | |||
|  | void clearpie(int left, int top, int right, int bottom, double stangle, double endangle);	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | void polyline	 (const POINT *points, int num);	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | void polygon	 (const POINT *points, int num);	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | void fillpolygon (const POINT *points, int num);	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD>(<28>б߿<D0B1>)
 | |||
|  | void solidpolygon(const POINT *points, int num);	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD>(<28>ޱ߿<DEB1>)
 | |||
|  | void clearpolygon(const POINT *points, int num);	// <20><><EFBFBD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | void floodfill(int x, int y, int border);			// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>
 | |||
|  | 
 | |||
|  | void outtext(LPCTSTR str);					// <20>ڵ<EFBFBD>ǰλ<C7B0><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
 | |||
|  | void outtext(TCHAR c);						// <20>ڵ<EFBFBD>ǰλ<C7B0><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
 | |||
|  | void outtextxy(int x, int y, LPCTSTR str);	// <20><>ָ<EFBFBD><D6B8>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
 | |||
|  | void outtextxy(int x, int y, TCHAR c);		// <20><>ָ<EFBFBD><D6B8>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
 | |||
|  | int textwidth(LPCTSTR str);					// <20><>ȡ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ؿ<EFBFBD>
 | |||
|  | int textwidth(TCHAR c);						// <20><>ȡ<EFBFBD>ַ<EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ؿ<EFBFBD>
 | |||
|  | int textheight(LPCTSTR str);				// <20><>ȡ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ظ<EFBFBD>
 | |||
|  | int textheight(TCHAR c);					// <20><>ȡ<EFBFBD>ַ<EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ظ<EFBFBD>
 | |||
|  | int drawtext(LPCTSTR str, RECT* pRect, UINT uFormat);	// <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
 | |||
|  | int drawtext(TCHAR c, RECT* pRect, UINT uFormat);		// <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
 | |||
|  | 
 | |||
|  | // <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
 | |||
|  | //		nHeight: <20>ַ<EFBFBD><D6B7><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>߶ȣ<DFB6>
 | |||
|  | //		nWidth: <20>ַ<EFBFBD><D6B7><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(0 <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>Ӧ)<29><>
 | |||
|  | //		lpszFace: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>
 | |||
|  | //		nEscapement: <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>Ƕ<EFBFBD>(<28><>λ 0.1 <20><>)<29><>
 | |||
|  | //		nOrientation: ÿ<><C3BF><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>Ƕ<EFBFBD>(<28><>λ 0.1 <20><>)<29><>
 | |||
|  | //		nWeight: <20>ַ<EFBFBD><D6B7>ıʻ<C4B1><CABB><EFBFBD>ϸ(0 <20><>ʾĬ<CABE>ϴ<EFBFBD>ϸ)<29><>
 | |||
|  | //		bItalic: <20>Ƿ<EFBFBD>б<EFBFBD>壻
 | |||
|  | //		bUnderline: <20>Ƿ<EFBFBD><C7B7>»<EFBFBD><C2BB>ߣ<EFBFBD>
 | |||
|  | //		bStrikeOut: <20>Ƿ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD>ߣ<EFBFBD>
 | |||
|  | //		fbCharSet: ָ<><D6B8><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | //		fbOutPrecision: ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD>
 | |||
|  | //		fbClipPrecision: ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD>ֵļ<D6B5><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD>
 | |||
|  | //		fbQuality: ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | //		fbPitchAndFamily: ָ<><D6B8><EFBFBD>Գ<EFBFBD><D4B3>淽ʽ<E6B7BD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>С<EFBFBD>
 | |||
|  | void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace); | |||
|  | void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut); | |||
|  | void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut, BYTE fbCharSet, BYTE fbOutPrecision, BYTE fbClipPrecision, BYTE fbQuality, BYTE fbPitchAndFamily); | |||
|  | void settextstyle(const LOGFONT *font);	// <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
 | |||
|  | void gettextstyle(LOGFONT *font);		// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | void loadimage(IMAGE *pDstImg, LPCTSTR pImgFile, int nWidth = 0, int nHeight = 0, bool bResize = false);					// <20><>ͼƬ<CDBC>ļ<EFBFBD><C4BC><EFBFBD>ȡͼ<C8A1><CDBC>(bmp/jpg/gif/emf/wmf)
 | |||
|  | void loadimage(IMAGE *pDstImg, LPCTSTR pResType, LPCTSTR pResName, int nWidth = 0, int nHeight = 0, bool bResize = false);	// <20><><EFBFBD><EFBFBD>Դ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ȡͼ<C8A1><CDBC>(bmp/jpg/gif/emf/wmf)
 | |||
|  | void saveimage(LPCTSTR pImgFile, IMAGE* pImg = NULL);																		// <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
 | |||
|  | void getimage(IMAGE *pDstImg, int srcX, int srcY, int srcWidth, int srcHeight);												// <20>ӵ<EFBFBD>ǰ<EFBFBD><C7B0>ͼ<EFBFBD>豸<EFBFBD><E8B1B8>ȡͼ<C8A1><CDBC>
 | |||
|  | void putimage(int dstX, int dstY, const IMAGE *pSrcImg, DWORD dwRop = SRCCOPY);												// <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ
 | |||
|  | void putimage(int dstX, int dstY, int dstWidth, int dstHeight, const IMAGE *pSrcImg, int srcX, int srcY, DWORD dwRop = SRCCOPY);		// <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ(ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
 | |||
|  | void rotateimage(IMAGE *dstimg, IMAGE *srcimg, double radian, COLORREF bkcolor = BLACK, bool autosize = false, bool highquality = true);// <20><>תͼ<D7AA><CDBC>
 | |||
|  | void Resize(IMAGE* pImg, int width, int height);	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>豸<EFBFBD>Ĵ<EFBFBD>С
 | |||
|  | DWORD* GetImageBuffer(IMAGE* pImg = NULL);			// <20><>ȡ<EFBFBD><C8A1>ͼ<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD>Դ<EFBFBD>ָ<EFBFBD><D6B8>
 | |||
|  | IMAGE* GetWorkingImage();							// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0>ͼ<EFBFBD>豸
 | |||
|  | void SetWorkingImage(IMAGE* pImg = NULL);			// <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0>ͼ<EFBFBD>豸
 | |||
|  | HDC GetImageHDC(IMAGE* pImg = NULL);				// <20><>ȡ<EFBFBD><C8A1>ͼ<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>(HDC)
 | |||
|  | 
 | |||
|  | 
 | |||
|  | // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | int	getwidth();			// <20><>ȡ<EFBFBD><C8A1>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | int	getheight();		// <20><>ȡ<EFBFBD><C8A1>ͼ<EFBFBD><CDBC><EFBFBD>߶<EFBFBD>
 | |||
|  | int	getx();				// <20><>ȡ<EFBFBD><C8A1>ǰ x <20><><EFBFBD><EFBFBD>
 | |||
|  | int	gety();				// <20><>ȡ<EFBFBD><C8A1>ǰ y <20><><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | void BeginBatchDraw();	// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | void FlushBatchDraw();	// ִ<><D6B4>δ<EFBFBD><CEB4><EFBFBD>ɵĻ<C9B5><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | void FlushBatchDraw(int left, int top, int right, int bottom);	// ִ<><D6B4>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>ɵĻ<C9B5><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | void EndBatchDraw();	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>ִ<EFBFBD><D6B4>δ<EFBFBD><CEB4><EFBFBD>ɵĻ<C9B5><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | void EndBatchDraw(int left, int top, int right, int bottom);	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>ִ<EFBFBD><D6B4>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>ɵĻ<C9B5><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 
 | |||
|  | HWND GetHWnd();								// <20><>ȡ<EFBFBD><C8A1>ͼ<EFBFBD><CDBC><EFBFBD>ھ<EFBFBD><DABE><EFBFBD>(HWND)
 | |||
|  | TCHAR* GetEasyXVer();						// <20><>ȡ EasyX <20><>ǰ<EFBFBD>汾
 | |||
|  | 
 | |||
|  | // <20><>ȡ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | bool InputBox(LPTSTR pString, int nMaxCount, LPCTSTR pPrompt = NULL, LPCTSTR pTitle = NULL, LPCTSTR pDefault = NULL, int width = 0, int height = 0, bool bOnlyOK = true); | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
 | |||
|  | // ֧<><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>
 | |||
|  | //		WM_MOUSEMOVE		<09><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>
 | |||
|  | //		WM_MOUSEWHEEL		<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
 | |||
|  | //		WM_LBUTTONDOWN		<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | //		WM_LBUTTONUP		<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | //		WM_LBUTTONDBLCLK	<09><><EFBFBD><EFBFBD>˫<EFBFBD><CBAB>
 | |||
|  | //		WM_MBUTTONDOWN		<09>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | //		WM_MBUTTONUP		<09>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | //		WM_MBUTTONDBLCLK	<09>м<EFBFBD>˫<EFBFBD><CBAB>
 | |||
|  | //		WM_RBUTTONDOWN		<09>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | //		WM_RBUTTONUP		<09>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | //		WM_RBUTTONDBLCLK	<09>Ҽ<EFBFBD>˫<EFBFBD><CBAB>
 | |||
|  | struct MOUSEMSG | |||
|  | { | |||
|  | 	UINT uMsg;				// <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
 | |||
|  | 	bool mkCtrl;			// Ctrl <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 	bool mkShift;			// Shift <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 	bool mkLButton;			// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 	bool mkMButton;			// <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 	bool mkRButton;			// <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 	short x;				// <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD> x <20><><EFBFBD><EFBFBD>
 | |||
|  | 	short y;				// <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD> y <20><><EFBFBD><EFBFBD>
 | |||
|  | 	short wheel;			// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD>ֵ (120 <20>ı<EFBFBD><C4B1><EFBFBD>)
 | |||
|  | }; | |||
|  | 
 | |||
|  | bool MouseHit();			// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
 | |||
|  | MOUSEMSG GetMouseMsg();		// <20><>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><D0A3>͵ȴ<CDB5>
 | |||
|  | void FlushMouseMsgBuffer();	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 |