Laden...

Fenstergröße 1x1 Pixel

Erstellt von Tenner vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.962 Views
T
Tenner Themenstarter:in
9 Beiträge seit 2007
vor 13 Jahren
Fenstergröße 1x1 Pixel

Hallo zusammen,
hab schon nach diesem Problem geforscht allerdings nicht die passende Lösung gefunden.
In C# ist es zwar möglich die Fenstergröße auf 1 x 1 Pixel einzustellen, wenn man zuvor den Borderstyle auf none stellt. Aber trotzdem ist es so, dass dieses Fenster 2x2 Pixel hat.
Hat jemand eine Idee, wie ich tatsächlich ein 1x1 Pixel großes Fenster erhalten kann.

Vielen Dank im voraus;)

916 Beiträge seit 2008
vor 13 Jahren

Nur mal so am Rande. Für welchen UseCase brauchst du ein Fenster in der Größe 1x1?

Again what learned...

T
Tenner Themenstarter:in
9 Beiträge seit 2007
vor 13 Jahren

und ich wusste das diese Frage kommt 😉

alternativ kam mir noch folgende Idee. Ist es möglich ein Fenster durchsichtig zu machen aber
Pixel die mit gemalt werden,

private void Form1_Paint(object sender, PaintEventArgs e)
{
  Bitmap bm = new Bitmap(10, 10);
  bm.SetPixel(0, 0, Color.Black);
  e.Graphics.DrawImageUnscaled(bm, 434, 150);
}

darzustellen aber an den transparenten Stellen durchklickbar bleibt?

Gruß

5.742 Beiträge seit 2007
vor 13 Jahren

Ist es möglich ein Fenster durchsichtig zu machen aber
Pixel die mit gemalt werden,

Ja - schaue dir einmal Form.TransparencyKey an.

T
Tenner Themenstarter:in
9 Beiträge seit 2007
vor 13 Jahren

danke ich glaube das behebt mein problem.

trotzdem würde es mich interessehalber noch brennend interessieren, warum ein 1x1 form eine größe von 2x2 hat 😉

1.820 Beiträge seit 2005
vor 13 Jahren

Hallo!

@Tenner:
Und (u.a.) mich würde interessieren, wozu man ein 1x1-Fenster benötigt.

Nobody is perfect. I'm sad, i'm not nobody 🙁

T
Tenner Themenstarter:in
9 Beiträge seit 2007
vor 13 Jahren

Also um es genau zusagen war die idee....
Ich hab nen totes Pixel auf meinem Notebook das mich irgendwie stört, weil es genau in der Mitte vom Bildschirm ist. Meine Idee war es genau an diesem Pixel die Farbe zu manipulieren das es nicht genau in der Farbe Rot Blau oder Grün leuchtet. Es ist zwar noch da, aber ist nicht mehr ganz so stören. Konnte es leider auch nur mit nem roten toten pixel testen aber für meinen fall funktioniert es mehr oder minder akzeptabel 😉

Und mit transparent key kann man das fenster auf oberstet ebene halten, und durch die farbe klicken so das nur ein pixel nicht klickbar ist;)

So nun zufrieden;)

1.820 Beiträge seit 2005
vor 13 Jahren

Hallo!

@Tenner:
Interessante Idee. Heisst dass, dieses "tote" Pixel kann nur eindeutige Farben (also NUR grün, NUR rot bzw. NUR blau) nicht darstellen?
Stellt deine Anwendung dann immer eine bestimmte Farbe dar oder je nachdem welche Farbe aktuell an dieser Stelle dargestellt werden sollte?

Ich frage deshalb, weil ein Bekannter an seinem TFT-Bildschirm auch ein solches Pixel hat, konnte mich aber noch nicht intensiv damit beschäftigen, und da erscheint dein Ansatz sehr hilfreich.

Nobody is perfect. I'm sad, i'm not nobody 🙁

T
Tenner Themenstarter:in
9 Beiträge seit 2007
vor 13 Jahren

Ein Pixelfehler kann sich ganz unterschiedlich darstellen.

http://de.wikipedia.org/wiki/Subpixel Hier kann man den Aufbau eines Pixels sehen. Ein Pixel besteht aus 3 Subpixel, ein rotes grünes blaues. Es kann wahrscheinlich in beliebigen Kombinationen vorkommen, das ein Teil nicht mehr leuchtet oder halt nur noch leuchtet bei mir z.b. nur der rote Teil.

Das was ich jetzt hier gemacht habe, ist einfach so das an diesem Punkt einfach die voreingestellte Farbe soweit möglich halt angezeigt wird. Wenn Rot halt ständig leuchtet, kann man halt nur noch den grünen bzw blauen kanal beeinflussen.

68 Beiträge seit 2008
vor 13 Jahren

1-2 Pixelfehler sind bei handelsüblichen TFTs (Pixelfehlerklasse II) leider im Rahmen der Qualität, damit muss man leben.

trotzdem würde es mich interessehalber noch brennend interessieren, warum ein 1x1 form eine größe von 2x2 hat 😉

Weil das .NET es so will. Es zeichnet auf x/y und jeweils 1 Pixel nach rechts/unten.

Mit CreateWindow(Ex) hast du das Problem übrigens nicht.