@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: The GetTextExtentPoint32 API !!!!C# Signature: [DllImport("gdi32.dll")] static extern bool GetTextExtentPoint32(IntPtr hdc, string lpString, int cbString, out SIZE lpSize); !!!!User-Defined Types: None. !!!!Notes: None. !!!!Tips & Tricks: If you need to treat unicode text, you'll need to set the CharSet option to Unicode or Auto (which is default on WindowsNT) [DllImport("gdi32.dll", CharSet=CharSet.Unicode)] static extern bool GetTextExtentPoint32(IntPtr hdc, string lpString, int cbString, out SIZE lpSize); !!!!Sample Code: // the GDI class contains static "gdi32.dll" calls public Size getExtent(string text, Graphics graphics, Font font) { Size sz = Size.Empty; IntPtr hdc = graphics.GetHdc(); IntPtr oldfnt = GDI.SelectObject(hdc, font.ToHfont()); GDI.GetTextExtentPoint32(hdc, text, text.Length,out sz); // reset old font GDI.DeleteObject(GDI.SelectObject(hdc, oldfnt)); graphics.ReleaseHdc(hdc); return sz; } !!!!Alternative Managed API: If you are using GDI+ with a Graphics object you can make use of the following code sample: using System.Windows.Forms; // for TextRenderer Size size=TextRenderer.MeasureText(g, str, f, new Size(), TextFormatFlags.NoPadding); Since .NET padding has been added to font's height and width. So you need to make use of the format flag TextFormatFlags.NoPadding to get the real size of the text. Variables: g - is the Graphics object you want to draw on str - the string that should be measured f - the font you want to use new Size() - just a dummy parameter For more information see http://msdn.microsoft.com/de-de/library/system.windows.forms.textrenderer(VS.80).aspx Good luck and have fun ;-) (Julian Taupe) Documentation: GetTextExtentPoint32@msdn on MSDN
Edit gdi32.GetTextExte...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.