C#ÏÂʵÏÖË«»º³åÃè»¸ßÆµÇúÏß(GDI+½áºÏGDI)
ÓÉÓÚÏîÄ¿ÐèÒª,ҪʹÓÃc#Ãè»¸ßÆµÊµÊ±ÇúÏß.
µ«ÊÇÔÚC#ÏÂÓÉÓÚÃè»Í¼ÏñʹÓõÄÊÇGDI+,Ãè»Ð§ÂʺÜÓÐÎÊÌâ.Ò»µ©ÇúÏßÌ«¶à,¾Í»áÔì³ÉCPUʹÓÃÂÊÖ±ÏßÉÏÉý,ÂíÉÏìÉýµ½100%.
ÔÚGDI+ÏÂʹÓÃË«»º³åÒ²ÎÞ¼ÃÓÚÊÂ,Ë«»º³å±¾ÉíÖ»»á½â¾öÇúÏß¶àµÄʱºòÈ«ÆÁÉÁ˸ÎÊÌâ,µ«Ãè»Ð§ÂÊ»¹ÊÇÑÏÖØµÍÏÂ.
Æä¼äÓùý¶àÖÖ½â¾ö·½°¸:DRECT3D,DRIRECT2D,GDI,,,,,µÈµÈµÈµÈ
×îºó´ÓЧÂʳö·¢,×îÖÕ½â¾ö·½°¸ÈçÏÂ:
ǰ̨ÏÔʾʹÓÃGDI,¶øºǫ́Ãè»Ôò²ÉÓÃGDI+
ºǫ́²ÉÓÃ10±¶ÓÚǰ̨´°¿ÚµÄBUFFER,ÿ´ÎÏòÆäÖлһÌõÏß.È»ºóͨ¹ýÒ»¸öRECTÊÓ¿Ú,ÿ´ÎÏòǰ̨ÏÔʾÊÓ¿ÚÀïµÄÄÚÈÝ.·ñÔòÿ´ÎÖØ»æµÄ´ú¼ÛÌ«¸ß.
Õâ¸ö·½·¨ÊµÏÖµÄÄѵãÖ÷ÒªÔÚÓÚGDIºÍGDI+µÄ½áºÏ²¿·Ö,Ö÷Òª´úÂëÈçÏÂ:
1.º¯Êý¿â:using ºÍ WIN32APIº¯Êý
using System.Runtime.InteropServices;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Drawing.Text;
[DllImport("gdi32")]
public static extern IntPtr CreateCompatibleDC(IntPtr hdc);
[DllImport("gdi32")]
public static extern IntPtr SelectObject(IntPtr hdc, IntPtr hObject);
[DllImport("GDI32.dll")]
public static extern long BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);
[DllImport("GDI32.dll")]
public static extern bool DeleteObject(IntPtr hObject);
2.ÉùÃ÷¶ÔÏó
public PictureBox _backgroundGraph;//±»Ã軵Ŀؼþ¶ÔÏó
//public Form _backgroundGraph;
public Graphics _backgroundGraphic = null; // ±³¾°Graphic
public Graphics _backgroundRenderGraphic = null; // Ë«»º³åGraphic
private Graphics _backgroundMemoryGraphic = null; // ÄÚ´æGraphic
public Graphics _backgroundDrawGraphic = null; // Ãè»Graphic
private Bitmap _backgroundMemoryBitmap = null; // ÄÚ´æBitmap
public BufferedGraphics _graphicsBuffer = null; // Ë«»º³åBufferedGraphics
private IntPtr _memoryGraphicHdc; // ÄÚ´æGraphicÊÊÓõÄÒýÓÃ
private IntPtr _memoryBitmapHdc; // ÄÚ´æBitmapÊÊÓõÄÒýÓÃ
3.³õʼ»¯¶ÔÏó
public void InitDraw()
{
_backgroundGraph = pictu
Ïà¹ØÎĵµ£º
C# accessÈÕÆÚ²éѯ¼Ó#
if (((string)((ComboBoxItem)cmbField.SelectedItem).Value).Equals("System.DateTime"))
{
//ÅжÏÈÕÆÚµÄ;
& ......
Õâ¸öÎÊÌâÒ²²»ÖªµÀÄѵ¹Á˶àÉÙC#ºÀ½Ü¡£±ÈÆðMFCµÄ½çÃæË¢Ð£¬ÔÚWINFORMÖÐÀ´ÊµÏÖ¶àÏß³ÌË¢ÐÂÕæÊǺÜÍ´¿à£¬¹Êд´ËÎÄ¡£
¶àÏß³ÌˢнçÃæÖ÷ÒªÓõ½¶àỊ̈߳¬Î¯ÍУ¬Ḭ̈߳²È«¡¢Ê¼þµÈһϵÁиßÄѶȵÄC#²Ù×÷¡£
¹ØÓÚίÍкÍʼþ£¬ÕâÓÐһƪºÜÒ×¶®µÄÎÄÕ£ºhi.baidu.com/anglecloudy/blog/item/a52253ee804d052f2df534ab.html
£½£½£½£½£½£½£½£½ ......
ÔÎĵØÖ·£ºhttp://msdn.microsoft.com/zh-cn/library/79b3xss3(VS.80).aspx
¾²Ì¬ÀàºÍÀà³ÉÔ±ÓÃÓÚ´´½¨ÎÞÐè´´½¨ÀàµÄʵÀý¾ÍÄܹ»·ÃÎʵÄÊý¾ÝºÍº¯Êý¡£¾²Ì¬Àà³ÉÔ±¿ÉÓÃÓÚ·ÖÀë¶ÀÁ¢ÓÚÈκζÔÏó±êʶµÄÊý¾ÝºÍÐÐΪ£ºÎÞÂÛ¶ÔÏó·¢Éúʲô¸ü¸Ä£¬ÕâЩÊý¾ÝºÍº¯Êý¶¼²»»áËæÖ®±ä»¯¡£µ±ÀàÖÐûÓÐÒÀÀµ¶ÔÏó±êʶµÄÊý¾Ý»òÐÐΪʱ£¬ ......
×Ö·û´®µÄ¿í¶È×ÔÊÊÓ¦ÈÝÆ÷
Graphics g = Graphics.fromImage(new Bitmap(1, 1));
SizeF size = g.MeasureString(lblTitle.Text, new Font("ËÎÌå", 24 * 0.0625F, FontStyle.Bold));
float oldSize=(800*0.0625F);//1px=0.0625em
float newSize = (0.75F/size.Width )* oldSize;
size.Width µÄµ¥ ......
µÚÒ»Õ ³ÌÐòÉè¼Æ
¡¡¡¡“ÒªÏë³ÉÎªÕæÕýµÄ³ÌÐòÔ±£¬ÎÒÃÇÐèÒª½øÐÐÒ»³¡Ï´Àñ¡£”
¡¡¡¡“³ÌÐò = Êý¾Ý½á¹¹ + Ëã·¨¡£”ÕâÑùµÄ¹«Ê½ºÜ¾«±Ù£¬ËüÔ½¹ýÁ˱í²ãÖ±½ÓÃèÊöÁ˳ÌÐòµÄ±¾ÖÊ¡£²»½öÈç´Ë£¬ÕâÑù¼¸¸ö¼òµ¥µÄµ¥´ÊÒ²ÈÃÎÒÃÇÃ÷°×“ÎÒÃÇÓ¦¸ÃѧϰʲôÄÚÈÝ£¿”¡£ÈËÃÇ×öÈκÎʶ¼ÓÐÒ»¶¨µÄ³ÌÐò£¬Ö»ÊÇûÓÐÒâʶµ½¡£Ó ......