GDIPlus - Bereich immun machen

  • Hallo zusammen,

    ist es irgendwie möglich, bestimmte Bereiche auf der GUI so gegen GDIPlus immun zu machen, dass man auf diese Bereiche nicht mit GDIPlus zeichnen kann?

    Lg NO1 :)

  • Immun machen nicht, aber du könntest eine weitere Gui erstellen mit $WS_CHILD als style und der Gui als Parent, dann passend positionieren.

    Mit borderless,... merkt man garnicht, dass dort eine andere Gui ist, und dort sieht man dann nicht, was unter der ChildGui darunter gezeichnet wurde.

    Ansonsten, einfach nicht auf der Gui zeichnen, sondern auf einem Bild, das dort eingeblendet wird. Das macht man ja häufig, um bei dem ReDraw, beim Bewegen des Fensters aus dem Bildschirmrand,... das Bild neuzuzeichnen.

    Auf dem Bild kann der Bereich ja wieder gelöscht werden, nachdem gezeichnet wurde.

    Wenn du den Anwendungsfall genauer beschreibst gibts aber vllt. noch eine bessere Möglichkeit :)

  • Danke Kanashius... Das mit dem Bild zeichnen klingt interessant...

    Also kurz mal ein paar Infos: Ich hab ne maximierte GUI. Auf der GUI befindet sich ein Hintergrundbild, das sich in unbestimmten Intervallen vollständig erneuert und somit auch immer wieder neu "Vollbild" gezeichnet werden muss. An bestimmten Stellen befinden sich Controls (die ich soweit wie möglich mit GDIPlus selbst erstellt hab), ein Control ist aber ein mit _WinAPI_CreateWindowEx erstellter Input. Dieser Input muss natürlich im Vordergrund sein (liegt somit auf dem mit GDI+ gezeichnetem Hintergrundbild) und darf somit auch nicht übermalt werden.

  • Ich weiß leider nicht mehr genau wie das funktioniert, aber man kann mit RectRgn Bereiche definieren in denen (nicht) gezeichnet wird. Du müsstest also in der Lage sein Ein gfx zu erstellen welches in bestimmten Bereichen nicht überzeichnet wird. (oder eine Bitmap die in diesen Bereichen volltransparent ist).

    Einziger Stichpunkt der mir dazu einfällt ist folgendes:

    https://www.autoitscript.com/forum/topic/12464-hole-in-gui/

    M

  • Ja, da kommen wir der Sache schon näher... Mit RectRgn hab ich mir das auch irgendwie vorgestellt. Ich schau mir jetz mal nochmal das GUIHole Beispiel an...

    Danke Mars

  • Du musst die Positionen der Controls ermitteln und sie dann ausclippen.

    Hier ein älteres Beispiel:

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Danke UEZ,

    hab das Beispiel probiert...und es funktioniert...

    Werde es mir in nächster Zeit genau anschauen, da es genau das ist, was ich gesucht, habe!

    Danke euch allen für die Hilfe