Aktualnie mam aplikację konsoli. Jak mogę narysować grafikę na ekranie bez konieczności posiadania formularza.Jak rysować grafiki w języku C# bez formularza
Odpowiedz
EDYCJA - na podstawie komentarza CuddleBunny stworzyłem klasę, która zasadniczo "rysuje grafikę na ekranie".
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());
}
}
}
Mam nadzieję, że to pomaga.
stary uszkodzony odpowiedź
można uzyskać HWND innego okna i zwrócić na to. Nie jestem pewien, jak narysować cały ekran, zawsze się nad tym zastanawiałem.
Prosty przykład:
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);
}
Musisz utworzyć okno jakiegoś zwrócić do grafiki. Nie możesz po prostu narysować bezpośrednio na ekranie.
Nie jestem do końca pewien, ale ta aplikacja nazywa się puush (która pozwala przesyłać zrzuty ekranu) http://puush.me/ rysuje prostokąt na ekranie, aby wybrać region ekranu do przechwytywania i wydaje się, że nie potrzebuje żadnego okna. Bez reklam, ale zawsze zastanawiałem się, jak to się robi. – Zhanger
Jestem pewien, że używa "okna", ale okno, do którego rysuje, nie ma żadnego chromu. Możesz odtworzyć ten efekt, tworząc aplikację formularzy, ustawiając styl okna na "none", a tło na przezroczyste. Następnie użytkownik zobaczy obiekty dodane do formularza. W przypadku puush.me, jestem pewien, że tworzy to okno pełnoekranowe z przezroczystym tłem. – CuddleBunny
CuddleBunny, to zasługuje na samodzielną odpowiedź (zwłaszcza jeśli soczysz to z kodem nagich kości). –
Możesz rysować na całym ekranie bez okna używając directx, jeśli utworzysz pełny ekran DirectDruk. Ekran jest cały twój (w ogóle nie ma pulpitu Windows).
- 1. Otwieranie formularza w języku C# bez ogniskowania
- 2. Drukowanie grafiki w języku Python
- 3. C# Application.Run bez formularza
- 4. grafiki w C# (.NET)
- 5. Drukowanie formularza/UserControl w języku C#
- 6. Wykreślanie grafiki 3D w języku Python 3
- 7. Migotanie grafiki C#
- 8. Jak rysować i przesuwać kształty za pomocą myszy w języku C#
- 9. Okólnik w języku C++ bez wskaźników
- 10. Grafiki PIL i grafiki wektorowe
- 11. jak rysować rysunki w oknie obrazu
- 12. Jak pobrać plik bez formularza
- 13. Jak renderować/rysować obiekt bufora do bufora ramki bez glDrawPixels
- 14. Jak rysować/zarządzać siatką sześciokątną?
- 15. Dostosuj rozmiar formularza do tekstu tytułu w języku C#
- 16. Jak stworzyć framework sieciowy w języku C# bez ASPX?
- 17. Jak zamknąć formularz w języku C#
- 18. SetWindowsHookEx w języku C#
- 19. Najlepsze rozwiązanie dla prostej grafiki gier w C#/.net
- 20. Jak rysować wiele kostek w OpenGL
- 21. Formant ActiveX bez formularza
- 22. jak rysować na płótnie przeczytać json?
- 23. Czy mogą istnieć samodzielne funkcje w języku C# bez klasy?
- 24. Przenoszenie formularza bez stylu obramowania
- 25. Wysyłanie dynamiczne w języku C++ bez funkcji wirtualnych
- 26. Bardzo prosty D3: jak rysować łuk?
- 27. Deserializować ciąg znaków JSON w języku C# bez użycia refleksji
- 28. Biblioteka "grafiki" ASCII?
- 29. Kolejność grafiki w R
- 30. Aktualizacja grafiki
Dlaczego po prostu nie tworzysz formularza i nie uruchamiasz go w wątku dodatkowym? –
Ponieważ to, co robię, nie wymaga żadnych formularzy. –
Formularz jest po prostu abstrakcją dla okna. Możesz po prostu pominąć fakt, że jest to formularz i używać go jako wspólnego okna. Możesz także użyć windows api CreateWindowEx pomijając użycie Windows .Form dll, ale będzie to wymagało dużego nakładu pracy, ponieważ nie masz w tym przypadku żadnej funkcji GDI. –