Beispiel #1
0
        public static void DrawText(Graphics graphics, string text, Font font, Rectangle rect)
        {
            IntPtr hdc               = graphics.GetHdc();
            IntPtr fontHandle        = font.ToHfont();
            IntPtr currentFontHandle = APIsGdi.SelectObject(hdc, fontHandle);

            APIsGdi.SetBkMode(hdc, APIsEnums.BackgroundMode.TRANSPARENT);

            APIsStructs.RECT rc = new APIsStructs.RECT();
            rc.left   = rect.Left;
            rc.top    = rect.Top;
            rc.right  = rc.left + rect.Width;
            rc.bottom = rc.top + rect.Height;

            APIsUser32.DrawText(hdc, text, text.Length, ref rc,
                                APIsEnums.DrawTextFormatFlags.SINGLELINE | APIsEnums.DrawTextFormatFlags.LEFT
                                | APIsEnums.DrawTextFormatFlags.MODIFYSTRING | APIsEnums.DrawTextFormatFlags.WORD_ELLIPSIS);
            APIsGdi.SelectObject(hdc, currentFontHandle);
            APIsGdi.DeleteObject(fontHandle);
            graphics.ReleaseHdc(hdc);
        }