RSS
ÈÈÃŹؼü×Ö£º ¡¡¼ÆËã»úÓйØ×ÊÁÏ ¡¡33252 ¡¡mkv ¡¡word ¡¡MKV_NT
µ±Ç°Î»Öà : Ö÷Ò³>vc±à³Ì>½çÃæ/´°¿Ú>Áбí

»ùÓÚWindows GDI+µÄ¼¸ºÎÏßÌõ´¦Àí

À´Ô´£º¼ÆË㼸ÓëÐÅÏ¢¼¼Êõ ×÷Õߣº ʱ¼ä£º2006-11-30 µã»÷£º
¡¡¡¡ÒýÑÔ

¡¡¡¡GDI+ÊÇÔ­Windows GDIµÄÀ©Õ¹£¬Ôö¼ÓÁËй¦Äܲ¢¶ÔÔ­¹¦ÄÜÄ£¿é½øÐÐÁËÓÅ»¯£¬Ê¹±à³ÌÈËÔ±¸üÒ×ʵÏÖ¶àÖָ߼¶¹¦ÄÜ¡£ÒòGDI+µÄÇ¿´ó¹¦Äܼ°ÆäÍêÃÀµÄÐÔÄÜ£¬Î¢Èí³«µ¼ÐÂÓ¦ÓóÌÐòµÄ¿ª·¢»ùÓÚGDI+½øÐС£

¡¡¡¡Ëùν·¾¶£¬ÊÇÖ¸¿ÉÒÔ±»Ìî³äµÄ¡¢»­³öÂÖÀª»òͬʱ±»»­³öÂÖÀª²¢Ìî³äµÄÒ»¸ö»ò¶à¸öͼÐΡ£Â·¾¶µÄÒýÈ룬´ó´óµØ·á¸»ÁËWindowsµÄͼÐι¦ÄÜ£¬Ê¹µÃÓ¦ÓóÌÐò¿ÉÒÔ·½±ãµØ½¨Á¢¸´ÔÓÇøÓò£¬»æÖƺÍÌî³ä²»¹æÔòͼÐΡ£

¡¡¡¡Â·¾¶Ò»°ãÓÉÒÔÏÂÔªËØ×é³É£ºÖ±Ïß¡¢¾ØÐΡ¢ÍÖÔ²¡¢Ô²»¡¡¢¶à±ßÐΡ¢Èý´ÎÑùÌõºÍ±´Èû¶ûÇúÏß¡£ÔÚGDI+ÖУ¬¼¸ºÎÏßÌõµÄ´¦ÀíÖ÷ÒªÊÇͨ¹ýµ÷ÓÃͼÐη¾¶£¨GraphicsPath£©µÄ·½·¨À´ÊµÏֵġ£Ê¹ÓÃGraphicsPath¶ÔÏó¿ÉÒÔ½«ÕâÐ©ÔªËØÊÕ¼¯µ½Ò»¸öµ¥ÔªÖС£ÒÔºóÖ»Ðèµ÷ÓÃGraphicsÀàµÄDrawPath·½·¨£¬¾Í¿ÉÒÔÒ»´Î»æÖƳö¸Ã¶ÔÏóÊÕ¼¯µÄÈ«²¿ÔªËØÐòÁС£

¡¡¡¡±à³Ì·½·¨ÓëʵÀý

¡¡¡¡1¡¢×¼±¸¹¤×÷

¡¡¡¡Ê¹ÓÃGDI+±à³Ì£¬±ØÐë°üº¬gdiplus.hÍ·Îļþ£¬ÒªÊ¹ÓÃGdiplusÃû³Æ¿Õ¼ä£¬Á¬½ÓʱÐèÒªGdiplus.lib¡£Ê¹ÓÃGDI+»æÖƶÔÏóʱÐèÒª»ñȡһ¸öÉ豸ÃèÊö±í¾ä±ú£¬°ÑËü×÷Ϊ²ÎÊý´«µÝ¸øGraphicsµÄ¹¹Ô캯Êý£¬ÕâÑù¾Í¿ÉÒÔʹÓÃGraphics¶ÔÏóµÄ¿âº¯ÊýÁË¡£

¡¡¡¡Ê¹ÓÃGDI+±à³Ì±ØÐëÔÚ´´½¨GDI+¶ÔÏóǰִÐÐGdiplusStartupʵÏÖ³õʼ»¯£¬ÔÚ³ÌÐò½áÊøÊ±µ÷ÓÃGdiplusShutdown¹Ø±ÕGDI+¹¦ÄÜ£¬ÇåÀíÕ¼ÓõÄ×ÊÔ´¡£Á½×麯ÊýÒª³É¶Ôµ÷Óá£

¡¡¡¡Ê¾Àý´úÂëÈçÏÂËùʾ£º

//---------------------------ÔÚstdafx.hÎļþÖÐ-----------------------------------//
#include "Gdiplus.h"
using namespace Gdiplus ;
#pragma comment (lib, "Gdiplus.lib")
//----------------------ÔÚÓ¦ÓóÌÐòÀàµÄInitInstanceº¯ÊýÖÐ-----------------------//
GdiplusStartupInput gdiplusStartupInput ;
GdiplusStartup (&m_GdiplusToken, &gdiplusStartupInput, NULL) ;
//-----------------------ÔÚÓ¦ÓóÌÐòÀàµÄExitInstanceº¯ÊýÖÐ---------------------//
GdiplusShutdown (m_GdiplusToken) ;

¡¡¡¡×¢£ºÆäÖбäÁ¿m_GdiplusTokenÓ¦¸ÃÊÇULONG_PTRÀàÐ͵ÄÈ«¾Ö±äÁ¿£¬»òÕßÊÇÓ¦ÓóÌÐòÀàµÄ³ÉÔ±±äÁ¿

¡¡¡¡2¡¢Â·¾¶µÄ´´½¨

¡¡¡¡GraphicsPathÀàÌṩÁËÐí¶à´´½¨Â·¾¶ÔªËصĽӿڣºAddArc£¨Ô²»¡£©¡¢AddBezier£¨±´Èû¶ûÇúÏߣ©¡¢AddBeziers£¨±´Èû¶ûÇúÏßÐòÁУ©¡¢AddClosedCurve£¨±ÕºÏµÄ»ùÊýÑùÌõÇúÏߣ©¡¢AddCurve£¨»ùÊýÑùÌõÇúÏߣ©¡¢AddEllipse£¨ÍÖÔ²£©¡¢AddLine£¨Ö±Ï߶Σ©¡¢AddLines£¨Ö±Ïß¶ÎÐòÁУ©¡¢AddPie£¨ÉÈÐΣ©¡¢AddPolygon£¨¶à±ßÐΣ©¡¢AddRectangle£¨¾ØÐΣ©¡¢AddRectangles£¨¾ØÐÎÐòÁУ©ºÍAddString£¨×Ö·û´®ÂÖÀªÂ·¾¶£©¡£


ͼ1 MSDNÖÐÌṩµÄ·¾¶µÄÀý×Ó

¡¡¡¡3¡¢×Ó·¾¶µÄÌí¼ÓºÍÌáÈ¡

¡¡¡¡GraphicsPath»¹¿ÉÒÔ°üº¬¶à¸öͼÐΣ¬ÆäÖÐÿһ¸öͼÐα»³ÆÎª×Ó·¾¶£¨figures£©¡£Èç¹ûÔÚGraphicsPath¶ÔÏóÖÐʹÓÃÁËStartFigure»òCloseFigureº¯Êý£¬ÔÚÕâÁ½¸öÖ®ºó¶Ô·¾¶ËùÌí¼ÓµÄÏßÌõ¶¼½«¹¹³ÉÒ»¸öµÄ×Ó·¾¶¡£[5]ÕâÁ½¸öº¯ÊýµÄÇø±ðÊÇ£¬StartFigure·½·¨²»±ÕºÏµ±Ç°Í¼Ðμ´¿ªÊ¼Ò»¸öÐÂͼÐΣ¬¶øCloseFigure·½·¨±ÕºÏµ±Ç°Í¼Ðβ¢¿ªÊ¼ÐµÄͼÐΡ£

¡¡¡¡ÏÂÃæÁ½¶ÎʾÀý´úÂëÔÚ·¾¶ÖÐÌí¼ÓÁËÁ½¸öÌõ·¾¶£¬Ç°Ò»Ìõ×Ó·¾¶ÓÉÁ½ÌõÖ±Ïß¶Î×é³É£¬ºóÒ»Ìõ×Ó·¾¶ÊÇÒ»¸öÔ²ÐΡ£Á½¶Î´úÂ벻ͬµÄµØ·½½ö½öÔÚÓÚStartFigureºÍCloseFigureº¯ÊýµÄʹÓã¬Òò¶øËüÃǵÄЧ¹ûÒ²²»Ïàͬ£¬Èçͼ2ºÍͼ3Ëùʾ¡£

//ʾÀý´úÂë1----ʹÓÃStartFigure
GraphicsPath path;
path.AddLine(100,100,100,150);
path.AddLine(100,150,150,150);
path.StartFigure();
path.AddEllipse(75,75,50,50);
Graphics g(hdc);
g.DrawPath(&Pen(Color::Black,1),&path);
//ʾÀý´úÂë2----ʹÓÃCloseFigure
GraphicsPath path;
path.AddLine(100,100,100,150);
path.AddLine(100,150,150,150);
path.CloseFigure();
path.AddEllipse(75,75,50,50);
Graphics g(hdc);
g.DrawPath(&Pen(Color::Black,1),&path);


ͼ2¡¡StartFigureЧ¹û

ͼ3¡¡CloseFigureЧ¹û


¡¡¡¡GDI+µÄGraphicsPathIteratorÀàÍê³ÉÁ˶Ô·¾¶µÄÒ»¸ö»ò¶à¸ö×Ó·¾¶µÄÃèÊö¡¢¹ÜÀí¡¢²âÊԵȹ¦ÄÜ¡£GraphicsPathIteratorÄܹ»´Ó¸ø¶¨µÄ·¾¶ÖнøÐжàÖÖÓë×Ó·¾¶Ïà¹ØµÄ²Ù×÷¡£

¡¡¡¡±í1¡¡GraphicsPathIteratorÀà³£ÓóÉÔ±º¯Êý

³£ÓóÉÔ±º¯Êý ¹¦ÄÜÃèÊö
HasCurve ָʾÓë´ËGraphicsPathIterator¶ÔÏó¹ØÁªµÄ·¾¶ÊÇ·ñ°üº¬ÇúÏß
NextSubpath ½«´Ë×Ó·¾¶ÒƵ½Ö¸¶¨µÄGraphicsPath¶ÔÏóÖеÄÏÂÒ»×Ó·¾¶
Rewind ½«´ËGraphicsPathIterator¶ÔÏóÖØÈÆµ½Æä¹ØÁªÂ·¾¶µÄÆðʼ´¦
GetSubpathCount »ñȡ·¾¶ÖÐ×Ó·¾¶µÄÊýÄ¿

 

¹²2Ò³: ÉÏÒ»Ò³ 1 [2] ÏÂÒ»Ò³
×îÐÂÆÀÂÛ¹²ÓÐ 0 Î»ÍøÓÑ·¢±íÁËÆÀÂÛ
·¢±íÆÀÂÛ
ÆÀÂÛÄÚÈÝ£º²»Äܳ¬¹ý250×Ö£¬ÐèÉóºË£¬Çë×Ô¾õ×ñÊØ»¥ÁªÍøÏà¹ØÕþ²ß·¨¹æ¡£
Óû§Ãû£º ÃÜÂ룺
ÄäÃû?
×¢²á