Exemplo n.º 1
0
        public static void DrawText(Graphics graphics, string text, Font font, Rectangle rect)
        {
            IntPtr hdc = graphics.GetHdc();
              IntPtr fontHandle = font.ToHfont();
              IntPtr currentFontHandle = WindowsAPI.SelectObject(hdc, fontHandle);
              WindowsAPI.SetBkMode(hdc, BackgroundMode.TRANSPARENT);

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

              WindowsAPI.DrawText(hdc, text, text.Length, ref rc,
                          (int) (DrawTextFormatFlags.DT_SINGLELINE | DrawTextFormatFlags.DT_LEFT
                                 | DrawTextFormatFlags.DT_MODIFYSTRING | DrawTextFormatFlags.DT_WORD_ELLIPSIS));
              WindowsAPI.SelectObject(hdc, currentFontHandle);
              WindowsAPI.DeleteObject(fontHandle);
              graphics.ReleaseHdc(hdc);
        }
Exemplo n.º 2
0
        public static Size GetTextSize(Graphics graphics, string text, Font font)
        {
            IntPtr hdc = graphics.GetHdc();
              IntPtr fontHandle = font.ToHfont();
              IntPtr currentFontHandle = WindowsAPI.SelectObject(hdc, fontHandle);

              RECT rect = new RECT();
              rect.left = 0;
              rect.right = 0;
              rect.top = 0;
              rect.bottom = 0;

              WindowsAPI.DrawText(hdc, text, text.Length, ref rect,
                          (int)
                          (DrawTextFormatFlags.DT_SINGLELINE | DrawTextFormatFlags.DT_LEFT |
                           DrawTextFormatFlags.DT_CALCRECT));
              WindowsAPI.SelectObject(hdc, currentFontHandle);
              WindowsAPI.DeleteObject(fontHandle);
              graphics.ReleaseHdc(hdc);

              return new Size(rect.right - rect.left, rect.bottom - rect.top);
        }
Exemplo n.º 3
0
        public static Size GetTextSize(Graphics graphics, string text, Font font, ref Rectangle rc,
                                   DrawTextFormatFlags drawFlags)
        {
            IntPtr hdc = graphics.GetHdc();
              IntPtr fontHandle = font.ToHfont();
              IntPtr currentFontHandle = WindowsAPI.SelectObject(hdc, fontHandle);

              RECT rect = new RECT();
              rect.left = rc.Left;
              rect.right = rc.Right;
              rect.top = rc.Top;
              rect.bottom = rc.Bottom;

              WindowsAPI.DrawText(hdc, text, text.Length, ref rect, (int) drawFlags);
              WindowsAPI.SelectObject(hdc, currentFontHandle);
              WindowsAPI.DeleteObject(fontHandle);
              graphics.ReleaseHdc(hdc);

              return new Size(rect.right - rect.left, rect.bottom - rect.top);
        }
Exemplo n.º 4
0
 public static extern int GetClientRect(IntPtr hWnd, ref RECT rc);
Exemplo n.º 5
0
 public static extern int FillRect(IntPtr hDC, ref RECT rect, IntPtr hBrush);
Exemplo n.º 6
0
 public static extern int DrawText(IntPtr hdc, string lpString, int nCount, ref RECT lpRect, int uFormat);
Exemplo n.º 7
0
 public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref RECT lParam);
Exemplo n.º 8
0
 public static extern bool GetWindowRect(IntPtr hWnd, ref RECT rect);
Exemplo n.º 9
0
 public static extern bool GetMenuItemRect(IntPtr hWnd, IntPtr hMenu, uint Item, ref RECT rc);