私は現在コンソールアプリケーションを持っています。どのようにしてフォームを持たなくても、グラフィックを画面に描画できますか?フォームなしでC#でグラフィックスを描くにはどうすればいいですか?
答えて
EDIT - 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
私はそれが "ウィンドウ"を使用していると確信していますが、描画するウィンドウにはクロムはありません。この効果は、フォームアプリケーションを作成し、ウィンドウのスタイルを「なし」に設定し、背景を透明に設定することで再現できます。その後、ユーザーに表示されるのは、フォームに追加するオブジェクトだけです。 puush.meの場合は、透明な背景のフルスクリーンウィンドウを作成すると確信しています。 – CuddleBunny
CuddleBunny、それはスタンドアローンの答えに値する(特にあなたがいくつかの裸のコードでそれを搾り取るならば)。 –
フルスクリーンの直接描画面を作成すると、directxを使用してウィンドウなしで画面全体を描画できます。画面はすべてあなたのものです(Windowsデスクトップはまったくありません)。
- 1. フォームに線を描画するにはどうすればいいですか?
- 2. openLayersで水平線を描くにはどうすればいいですか?
- 3. グリッド上で円を描くにはどうすればいいですか?
- 4. CSSキャンバスでスライドショーフレームを描くにはどうすればいいですか?
- 5. iTextを使用してグラフィックスをPDFに描画するにはどうすればよいですか?
- 6. リストからキャンバスを描くにはどうすればいいですか
- 7. iReportに縦線を描くにはどうすればいいですか?
- 8. サブプロットに対角線を描くにはどうすればいいですか?
- 9. フォームのロードイベントで描画グラフィックスが機能しない
- 10. matlabのツリーレイアウトでグラフを描くにはどうすればよいですか?
- 11. Android webviewでマスク(円)を描くにはどうすればよいですか?
- 12. C#でフォームに3gpムービー(ストリーミングではない)を再生するにはどうすればよいですか?
- 13. 実際のBGイメージなしでこの背景を描くにはどうすればいいですか?
- 14. Android - パスで矢印を正しく描くにはどうすればいいですか?
- 15. 線を描くにはどうしたらいいですか?
- 16. iOSで滑らかな曲線を描くにはどうすればいいですか?
- 17. ダイヤモンドスクエアアルゴリズムをC++で書くにはどうすればいいですか?
- 18. この式をC++で書くにはどうすればいいですか
- 19. C# - WInForms - 再描画イベントで古いグラフィックスを破棄します
- 20. XMLで円の中に小さな円/点を描くにはどうすればいいですか?
- 21. シヌソイド線グラフを描くにはどうすればよいですか?
- 22. 大きなデータベースを使ってアンドロイドで地図を描くにはどうすればいいですか?
- 23. 折れ線の少ないグラフを描くにはどうすればいいですか?
- 24. iPhoneで指のスライド/タッチモーションで滑らかな線を描くにはどうすればよいですか?
- 25. jQueryを使用してy = m * x + Cのスロープラインを描くにはどうすればよいですか?
- 26. Winformで透明な線を描くにはどうすればいいですか?
- 27. Objective CでSafariでフォームを開くにはどうすればよいですか?
- 28. Visual C++ 2010 Expressでグラフィックスを描くことは可能ですか?
- 29. c#:パネル上に描画された非長方形グラフィックスでマウスイベントを追跡するにはどうすればよいですか?
- 30. AndroidでViewを使用して逆Z字形を描くにはどうすればいいですか?
なぜフォームを作成してセカンダリスレッドで実行するだけではないのですか? –
私は何もしていないので、フォームは必要ありません。 –
フォームは、ウィンドウの単なる抽象です。それがフォームであるという事実をスキップして共通のウィンドウとして使用できます。また、Windows.Form dllの使用をスキップするWindows API CreateWindowExを使用することもできますが、その場合はGDI関数を持たないため、かなり多くの作業を行う必要があります。 –