Вывод графики на экран, поверх всех окон. - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Интерисует такой вопрос, как можно выводить графику на экран, не в область окна приложения, а поверх всего. К примеру, как нарисовать линию или вывести изображение. Заранее спасибо.

Решение задачи: «Вывод графики на экран, поверх всех окон.»

textual
Листинг программы
  1. [DllImport("user32.dll")]
  2.         static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
  3.  
  4.         [DllImport("user32.dll", SetLastError = true)]
  5.         static extern int GetWindowLong(IntPtr hWnd, int nIndex);
  6.  
  7.         private const int ExStyle = -20;
  8.  
  9.         private const int Transparent = 0x20;
  10.  
  11.         private const int Layered = 0x80000;
  12.  
  13.         private int initialStyle;
  14.  
  15.         public Form1()
  16.         {
  17.             InitializeComponent();
  18.             initialStyle = GetWindowLong(Handle, ExStyle);
  19.             TransparencyKey = BackColor;
  20.             SetWindowLong(Handle, ExStyle, initialStyle | Layered | Transparent);
  21.             StartPosition = FormStartPosition.CenterScreen;
  22.             TopMost = true;
  23.             ShowIcon = false;
  24.             ShowInTaskbar = false;
  25.         }
  26.  
  27.         protected override void OnPaint(PaintEventArgs e)
  28.         {
  29.             Font f = new Font("Microsoft Sans Serif", 30f);
  30.             e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
  31. ;
  32.             e.Graphics.DrawString("HELLO WORLD!", f, new SolidBrush(Color.Red), new PointF(0, 0) );
  33.         }
  34.         const int WM_NCHITTEST = 0x0084;
  35.         const int HTTRANSPARENT = -1;
  36.  
  37.         protected override void WndProc(ref Message m)
  38.         {
  39.             if (m.Msg == WM_NCHITTEST)
  40.             {
  41.                 m.Result = (IntPtr)HTTRANSPARENT;
  42.                 return;
  43.             }
  44.             base.WndProc(ref m);
  45.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы