WindowedScreen bewegen?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Codusa
Beiträge: 92
Registriert: 11.07.2009 09:44

WindowedScreen bewegen?

Beitrag von Codusa »

Hallo,
Wie oben erwähnt möchte ich gerne Wissen ob ich einen Windowed Screen nachträglich noch in der Position
verändern kann.

Ich erstelle nähmlich ein Fenster in der Desktopauflösung und einen Screen in variabler größe (maximal die des Fensters)
damit der screen aber nicht oben "links rumgammelt" oder im Weg ist würde ich ihn gerne z.B. durch drücken der mittleren Maustaste
Durch das Window ziehen können.

Geht das?

Thx im Vorraus!
"I became insane, with long intervals of horrible sanity." - Edgar A. Poe
Benutzeravatar
captain_hesse
Beiträge: 138
Registriert: 17.05.2009 18:55
Computerausstattung: Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)
Wohnort: Saarland

Re: WindowedScreen bewegen?

Beitrag von captain_hesse »

Soweit ich weiß ist es nicht so einfach möglich einen WindowedScreen, ähnlich wie ein Window hin und her zu schieben. Aber du kannst den Screen zuerst schließen und dann an der gewünschten Position wieder neu öffnen.

etwa so zum Beispiel:

Code: Alles auswählen

InitSprite()
OpenWindow(0,0,0,800,600,"test")
OpenWindowedScreen(WindowID(0),0,0,320,200,0,0,0)
text$="Mittlere Maustaste drücken"
Repeat
event=WaitWindowEvent()

If event=#WM_MBUTTONDOWN  
CloseScreen()
OpenWindowedScreen(WindowID(0),WindowMouseX(0),WindowMouseY(0),320,200,0,0,0)

;Falls Sprites benutzt werden
;müssen diese dann an dieser Stelle wieder neu geladen werden. 

EndIf

StartDrawing(ScreenOutput())
DrawText(10,90,text$)
StopDrawing()
FlipBuffers()

Until event = #PB_Event_CloseWindow

CloseScreen()
CloseWindow(0)
End
Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)
Benutzeravatar
Schlumpf
Beiträge: 19
Registriert: 21.03.2010 00:52
Wohnort: Der Puff von Schlumpfhausen

Re: WindowedScreen bewegen?

Beitrag von Schlumpf »

öffne den WindowedScreen in einem Container. den Container kannst du resizen wie du lustig bist.
dann musst du allerdings die Maus selber handeln, die DX-MouseLib funzt dann nicht.
http://www.purebasic.fr/english/viewtop ... 43#p273743
PB 4.41 - Win XP pro
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: WindowedScreen bewegen?

Beitrag von WPö »

@Schlumpf: Servus und Willkommen im Forum! Bist ja schon eine Woche da - haben alle übersehen :cry: . Denkst Du auch bitte an die Signatur? Rechnerausstattung und blabla, damit sich alle auskennen.

Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Benutzeravatar
Codusa
Beiträge: 92
Registriert: 11.07.2009 09:44

Re: WindowedScreen bewegen?

Beitrag von Codusa »

@captain_hesse
OK das funktioniert soweit, aber wenn ich auf dem Screen einen Movie laufen lasse mittels playmovie(0,ScreenID())
dann bleibt der Film auf 0,0 und der Screen bewegt sich weg... :cry:

Wieso? muss ich bei playmovie etwas aderes angeben, damit er tatsächlich auf dem Screen angezeigt wird?

@schlumpf
Das mit dem Container hab ich noch nicht so ganz verstanden, ausserdem will ich nichts resizen sondern nur verschieben...

Trotzdem Danke an Alle!
"I became insane, with long intervals of horrible sanity." - Edgar A. Poe
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: WindowedScreen bewegen?

Beitrag von HeX0R »

WPo hat geschrieben:@Schlumpf: [...]Denkst Du auch bitte an die Signatur? Rechnerausstattung und blabla, damit sich alle auskennen.
Es scheint, als würde sich Schlumpf eher als Helfer, denn als Fragesteller hier im Board etablieren.
Als solcher kann es uns ziemlich egal sein, welche Rechnerausstattung und blabla er/sie hat...
Benutzeravatar
Schlumpf
Beiträge: 19
Registriert: 21.03.2010 00:52
Wohnort: Der Puff von Schlumpfhausen

Re: WindowedScreen bewegen?

Beitrag von Schlumpf »

Codusa hat geschrieben:@schlumpf
Das mit dem Container hab ich noch nicht so ganz verstanden, ausserdem will ich nichts resizen sondern nur verschieben...
der Container macht den Screen vom Fenster unabhängig.
ob du das nun zum verschieben oder resizen nutzt ist dann ja egal.

wenn du allerdings nen Movie anzeigen willst, würde ich dir dazu raten, den Screen neu zu öffnen.
schließlich brauchst du dann ja keine hunderte Sprites nachladen, und das wäre der einzige Grund warum man das neuöffnen des Screens vermeiden will.
bzw. nen Movie kannst du doch auch direkt auf ein Fenster anzeigen, also lass den Screen doch weg...
PB 4.41 - Win XP pro
Benutzeravatar
Codusa
Beiträge: 92
Registriert: 11.07.2009 09:44

Re: WindowedScreen bewegen?

Beitrag von Codusa »

Thx
Ich habe vor den Movie Rahmenlos anzuzeigen(also in nem window mit BorderLess beispielsweise)
ABER
Zusätzlich möchte ich den Rest vom Desktop abdunkeln und mir ist keine andere
Möglichkeit eingefallen, als nen Screen zu erstellen und vorher noch einen Screenshot(?)
zu machen und den dann mittels Drawinglib abzudunkeln(suboptimal ich weiss^^)

Die 2. Möglichkeit wäre das ich irgendwie das Rahmenlose Fenster mit dem Movie drin verschiebe,
aber wie das geht weiss ich leider auch nicht :(

Na ja, iwie krieg ich das schon hin :)
"I became insane, with long intervals of horrible sanity." - Edgar A. Poe
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Re: WindowedScreen bewegen?

Beitrag von Fluid Byte »

Code: Alles auswählen

InitMovie()

OpenWindow(0,0,0,320,240,"void",#PB_Window_BorderLess)
SetWindowColor(0,0)
SetWindowState(0,#PB_Window_Maximize)

SetWindowLongPtr_(WindowID(0),#GWL_EXSTYLE,#WS_EX_LAYERED)
SetLayeredWindowAttributes_(WindowID(0),0,220,#LWA_ALPHA)

LoadMovie(0,"**DEIN FILMCHEN**")
ResizeMovie(0,WindowWidth(0)/2-MovieWidth(0)/2,WindowHeight(0)/2-MovieHeight(0)/2,MovieWidth(0),MovieHeight(0))
PlayMovie(0,WindowID(0))

While WaitWindowEvent() ! #PB_Event_CloseWindow : Wend
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
Codusa
Beiträge: 92
Registriert: 11.07.2009 09:44

Re: WindowedScreen bewegen?

Beitrag von Codusa »

@ FluidByte
Thx, der Code funzt prima, aber ich kann den Movie dann nicht bewegen und der movie ist auch transparent...
Ansonsten schonmal prima1! :)
"I became insane, with long intervals of horrible sanity." - Edgar A. Poe
Antworten