我目前有一个控制台应用程序。我将如何绘制图形到屏幕上,而不必拥有一个表单。如何在没有表单的C#中绘制图形
回答
编辑 - 基于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);
}
你必须创建某种形式的窗口绘制图形。你不能直接画到屏幕上。
我并不完全确定,但这个应用程序称为Puush(可让您上传屏幕截图)http://puush.me/在屏幕上绘制一个矩形以供您选择要捕捉的屏幕区域,不需要任何窗口。不是广告,但我总是想知道它是如何做到的。 – Zhanger
我确定它使用“窗口”,但它所绘制的窗口没有任何铬。您可以通过创建Forms应用程序来重新创建这种效果,将窗口样式设置为“无”,并将背景设置为透明。之后,用户将看到的唯一东西是您添加到表单的对象。 在puush.me的情况下,我相信它会创建一个带有透明背景的全屏窗口。 – CuddleBunny
CuddleBunny,这是值得一个独立的答案(尤其是如果你用一些裸骨头代码榨取它)。 –
如果创建全屏直接绘制表面,则可以使用directx在没有窗口的情况下在整个屏幕上进行绘制。屏幕是你所有的(根本没有Windows桌面)。
- 1. 如何在C#中绘制热图形?
- 2. 如何在C#中绘制XY图形?
- 3. 图形没有绘制在paintComponent(Graphics)中?
- 4. 在c中绘制图形
- 5. zedgraph没有绘制图形
- 6. 如何在C#中绘制简单的图形?
- 7. OpenGL没有绘制任何图形
- 8. 如何在Google电子表格单元中绘制图形?
- 9. 在C中绘制图形(Ubuntu的)
- 10. 如何在c中的图片框上绘制图形#
- 11. 用C++绘制图形和图表的自由简单方法?
- 12. 如何使用c绘制图形?
- 13. C#中绘制图元的图形库?
- 14. 如何在没有背景的GraphView中绘制图表?
- 15. 有没有绘制我的C++类和方法的图形表示的工具?
- 16. c#webbrowser表单绘制矩形
- 17. 使用zedGraph在C#中绘制图形
- 18. 在C++窗口中绘制图形
- 19. 在C#中绘制图形WPF
- 20. 如何在asp.net 2.0中绘制图形
- 21. 如何在React Native中绘制图形?
- 22. 如何在Java中绘制图形
- 23. 如何在R中绘制图形?
- 24. 如何在gnuplot中绘制条形图?
- 25. 如何在Android中绘制图形?
- 26. 如何在eclipse中绘制matplotlib图形?
- 27. 如何在CSS中绘制图形?
- 28. Matplotlib:如何在表格单元格内绘制条形图?
- 29. 在QML中绘制简单条形图
- 30. Windows窗体图形没有绘制
为什么你不只是创建一个窗体并在辅助线程中运行它? –
因为我所做的不需要任何形式。 –
窗体只是一个窗口的抽象。您可以跳过它是一种表单的事实,并将其用作常见窗口。你也可以使用windows api CreateWindowEx跳过Windows.Form dll的使用,但是它会要求你做很多工作,因为在这种情况下你没有任何GDI函数。 –