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.
Markierungspositionierung in Bildbearbeitungsfenster
-
- Beiträge: 50
- Registriert: 29.03.2013 12:25
- Wohnort: Eisenach
Re: Markierungspositionierung in Bildbearbeitungsfenster
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
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."
Re: Markierungspositionierung in Bildbearbeitungsfenster
Vielleicht reichen auch schon 2 StickyWindows um die angeklebten Papierschnipsel zu ersetzen.
Diese virtuellen Papierschnipsel kann man dann mit der Maus verschieben.
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
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
-
- Beiträge: 50
- Registriert: 29.03.2013 12:25
- Wohnort: Eisenach
Re: Markierungspositionierung in Bildbearbeitungsfenster
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
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