GetTextExtentPoint

C# Signature:

[DllImport("gdi32.dll")]
static extern bool GetTextExtentPoint32(IntPtr hdc, string lpString,
   int cbString, out SIZE lpSize);

Tips & Tricks:

[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:

Alternative Managed API:

Última actualización