Как рисовать графику в C # без формы - PullRequest
5 голосов
/ 26 октября 2011

В настоящее время у меня есть консольное приложение.Как бы я рисовал графику на экране, не имея формы.

Ответы [ 3 ]

7 голосов
/ 26 октября 2011

РЕДАКТИРОВАТЬ - основываясь на комментарии CuddleBunny, я создал класс, который будет в основном «рисовать графику на экране».

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication4
{
    class test : Form
    {
        public test() : base()
        {
            this.TopMost = true;
            this.DoubleBuffered = true;
            this.ShowInTaskbar = false;
            this.FormBorderStyle = FormBorderStyle.None;
            this.WindowState = FormWindowState.Maximized;
            this.BackColor = Color.Purple;
            this.TransparencyKey = Color.Purple;
        }
        protected override void OnPaint(PaintEventArgs e)
        {
            e.Graphics.DrawRectangle(Pens.Black, 0, 0, 200, 200);
            this.Invalidate(); //cause repaint
        }
        public static void Main(String[] args)
        {
            Application.Run(new test());
        }
    }
}

Надеюсь, это поможет.

старый неправильный ответ


Вы можете получить hwnd другого окна и нарисовать его. Я не уверен, как рисовать на весь экран, я всегда задавался вопросом, что сам.

Простой пример:

            Process p = Process.GetProcessById(0); //id of the process or some other method that can get the desired process
        using (Graphics g = Graphics.FromHwnd(p.MainWindowHandle))
        {
            g.DrawRectangle(Pens.Black, 0, 0, 100, 100);
        }
2 голосов
/ 26 октября 2011

Вы должны создать какое-то окно для рисования графики.Вы не можете просто рисовать прямо на экране.

1 голос
/ 26 октября 2011

Вы можете рисовать на весь экран без окна, используя DirectX, если вы создаете полноэкранную Directdrawsurface.Экран весь ваш (без рабочего стола Windows).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...