Markierungspositionierung in Bildbearbeitungsfenster

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Heinz Mendax
Beiträge: 50
Registriert: 29.03.2013 12:25
Wohnort: Eisenach

Markierungspositionierung in Bildbearbeitungsfenster

Beitrag von Heinz Mendax »

Hallo,
ich möchte ein Programm erstellen, mit dem nacheinander 2 Markierungen (Kreuze o.ä.) auf dem Bildbearbeitungsfenster des
Programmes Stereomoviemaker (nur als Beispiel, es könnte auch Irfan sein) mit der Maus gesetzt werden können, und solange im Vordergrund sichtbar bleiben,bis das Programm beendet wird. Das Bildbearbeitungsprogramm muß aber mit der Maus noch bedienbar bleiben. Die Markierungen sollen nicht Bestandteil des bearbeiten Bildes werden, sondern nur an einer bestimmten Stelle des Desktops (Windowsbildschirm) im Vordergrund bleiben. Zur Not könnte man das Bildbearbeitungsprogramm mit dem bestimmten Bildinhalt unter die Markierung schieben. Ich habe das bisher mit 2 Papierschnipseln erledigt, die ich mit Spucke auf dem Bildschirm angeklebt habe - ist ja kein Zustand.Ich bitte darum,den grundsätzlichen Weg aufzuzeigen, ob hier Sprites ,die Windows API oder Mouseoperationen
notwendig sind.
Benutzeravatar
dige
Beiträge: 1239
Registriert: 08.09.2004 08:53

Re: Markierungspositionierung in Bildbearbeitungsfenster

Beitrag von dige »

Geht vermutlich am einfachsten mit 2 transparenten Fenstern durch die man "durchklicken" kann.
Mir fällt da spontan die WinFX Lib von PureLust ein: http://www.purebasic.fr/english/viewtop ... 12&t=43869
"Papa, ich laufe schneller - dann ist es nicht so weit."
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Markierungspositionierung in Bildbearbeitungsfenster

Beitrag von Danilo »

Vielleicht reichen auch schon 2 StickyWindows um die angeklebten Papierschnipsel zu ersetzen.
Diese virtuellen Papierschnipsel kann man dann mit der Maus verschieben.

Code: Alles auswählen

#MarkerSize = 15

Procedure OpenMarker(x,y,color)
    Protected win, canvas
    win = OpenWindow(#PB_Any,x,y,#MarkerSize,#MarkerSize,"Marker",#PB_Window_BorderLess)
    If win
        ;SetWindowColor(win,color)
        
        canvas = CanvasGadget(#PB_Any,0,0,#MarkerSize,#MarkerSize)
        If StartDrawing(CanvasOutput(canvas))
            Box(0,0,#MarkerSize,#MarkerSize,color)
            StopDrawing()
        EndIf
        StickyWindow(win,1)
    EndIf
EndProcedure

OpenMarker(100,100,RGB(255,255,0))
OpenMarker(400,300,RGB(255,255,0))


Repeat
    Event = WaitWindowEvent()
    Select Event
        Case #PB_Event_Gadget
            If EventType() = #PB_EventType_LeftButtonDown
                ReleaseCapture_()
                SendMessage_(WindowID(EventWindow()),#WM_NCLBUTTONDOWN,#HTCAPTION,0)
            ElseIf EventType() = #PB_EventType_RightClick
                CreatePopupMenu(1)
                MenuItem(1,"Exit")
                DisplayPopupMenu(1,WindowID(EventWindow()))
            EndIf
        Case #PB_Event_Menu
            End
        Case #PB_Event_CloseWindow
            End
    EndSelect
ForEver
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Heinz Mendax
Beiträge: 50
Registriert: 29.03.2013 12:25
Wohnort: Eisenach

Re: Markierungspositionierung in Bildbearbeitungsfenster

Beitrag von Heinz Mendax »

Hallo,

vielen Dank an dige und natürlich besonders an Danilo, der das Problem sozusagen so gelöst hat, wie ich das dachte. Ich wußte ja
garnicht wo vorn und hinten ist. Danke nochmal, das sich jemand meiner Frage angenommen hat. Als Anfänger kennt man meist
die Möglichkeiten der Programmiersprache nicht.

Gruss Heinz
Antworten