Seite 1 von 2

Rahmenlose Fenster verschieben

Verfasst: 28.08.2006 20:27
von Tsuki-Namida
Hallo,

ich habe in meiner Anwendung 2 fenster jewal rahmen los wenn beide fenster offen sind möchte ich sie gerne verschieben... ich habe diesen code mit reingepackt:

Code: Alles auswählen

  If  #WM_LBUTTONDOWN
    SendMessage_(Basic, #WM_NCLBUTTONDOWN, #HTCAPTION, #Window_Basic)
  EndIf
  If  #WM_LBUTTONDOWN
    SendMessage_(Window_0, #WM_NCLBUTTONDOWN, #HTCAPTION, #Window_0)
  EndIf
allerdings verrennt sie da meine anwendung und der prozessor hat einiges zu tuhn...

wenn ich den code aber so rein mache:

Code: Alles auswählen

  If  #WM_LBUTTONDOWN
    SendMessage_(Basic, #WM_NCLBUTTONDOWN, #HTCAPTION, #Window_Basic)
    SendMessage_(Window_0, #WM_NCLBUTTONDOWN, #HTCAPTION, #Window_0)

  EndIf
verrennt sich zwar nicht mehr die anwendung aber ich verschiebe nur das zu erst angegebene fenster...

ich möchte aber beide unabhängig von einander verschieben können...

was kann ich machen und das zu beheben?

Re: Rahmenlose Fenster verschieben

Verfasst: 28.08.2006 20:39
von Kiffi
Mit EventWindow() kannst Du rausfinden, in welchem Fenster ein Ereignis
aufgetreten ist.

Code: Alles auswählen

If  #WM_LBUTTONDOWN
  if EventWindow() = #Window_Basic
    SendMessage_(Basic, #WM_NCLBUTTONDOWN, #HTCAPTION, #Window_Basic)
  elseif EventWindow() = #Window_0
    SendMessage_(Window_0, #WM_NCLBUTTONDOWN, #HTCAPTION, #Window_0)
  EndIf
EndIf
... so ähnlich...

Grüße ... Kiffi

Verfasst: 28.08.2006 20:43
von Tsuki-Namida
danke für die mühe aber es ist leider erfolgslos :(

die anwenung verrennt sich wieder...

Verfasst: 28.08.2006 20:47
von Kiffi
Magix-Soft <Kain> hat geschrieben:die anwenung verrennt sich wieder...
was heisst das genau?

Wenn Du die komplette Event-Schleife postest, dann könnte man das besser
beurteilen.

Grüße ... Kiffi

Verfasst: 28.08.2006 20:52
von ts-soft
vor SendMessage fehlt:

Code: Alles auswählen

ReleaseCapture_()
Und möglichst in ein Callback

Verfasst: 28.08.2006 20:52
von Tsuki-Namida
naja mit verrennen meine ich das in etwar so.

wenn ich die anwendung starte sehe ich die 2 fenster aber ich kann nichts machen da ich schon im ersten fenster die button fertig gemacht habe. ich habe allerdings nur die mausuhr auf den beiden fenster...

meine schleife sieht soe aus:

Code: Alles auswählen

Repeat
  Event = WaitWindowEvent()

  WindowID = EventWindow()
    
  GadgetID = EventGadget()
  
  EventType = EventType() 
  If  #WM_LBUTTONDOWN 
    If EventWindow() = #Window_Basic 
      SendMessage_(Basic, #WM_NCLBUTTONDOWN, #HTCAPTION, #Window_Basic) 
    ElseIf EventWindow() = #Window_0 
      SendMessage_(Window_0, #WM_NCLBUTTONDOWN, #HTCAPTION, #Window_0) 
    EndIf 
  EndIf
Until a = 1
gut den code von den butten braucht man ja jetzt nicht.. die haben auch damit nichs zu tun

Verfasst: 28.08.2006 21:13
von Kiffi
Magix-Soft <Kain> hat geschrieben:

Code: Alles auswählen

 [...]
  If  #WM_LBUTTONDOWN
[...]
äh, was ist das denn für eine Zeile? :freak:

Und wie Thomas schon erwähnte fehlte das ReleaseCapture_().

Code: Alles auswählen

Enumeration
  #Window_Basic
  #Window_0
EndEnumeration

OpenWindow(#Window_Basic, #PB_Ignore, #PB_Ignore, 100, 100, "Basic", #PB_Window_ScreenCentered | #PB_Window_BorderLess)
OpenWindow(#Window_0, #PB_Ignore, #PB_Ignore, 100, 100, "0", #PB_Window_ScreenCentered | #PB_Window_BorderLess)

Repeat
  Event = WaitWindowEvent()
  WindowID = EventWindow()
  GadgetID = EventGadget()
  EventType = EventType()
  
  If Event = #WM_LBUTTONDOWN
    If WindowID = #Window_Basic
      ReleaseCapture_()
      SendMessage_(WindowID(#Window_Basic), #WM_NCLBUTTONDOWN, #HTCAPTION, #Window_Basic)
    ElseIf WindowID = #Window_0
      ReleaseCapture_()
      SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTCAPTION, #Window_0)
    EndIf
  EndIf
Until a = 1
Grüße ... Kiffi

Verfasst: 29.08.2006 12:08
von Tsuki-Namida
@Kiffi
als ich dein code beispiel getestet hatte ging es ja super...

als ich daber das nötige kopiert habe ging es bei mir nicht mehr :(

was habe ich falsch gemacht... ich verstehs nicht dabei ist es genauso wie bei dir...

ich habe hier mein ganzen code auf mein server gelden da sonst kein überblick mehr im thema ist...

http://tearsofthemoon.te.funpic.de/Executable.pb

die befehle zum verschieben findest du in zeile 355 bis 365

Verfasst: 29.08.2006 12:27
von ts-soft
Bei dem Link sehe ich folgendes:
Extern Linken -Filetype
aber kein download oder keinen source

Verfasst: 29.08.2006 12:56
von Tsuki-Namida
ja da spinnt mal wieder der server... wenn du den link anklickst öffnet sich ja ein neues fenster... wenn das die fehlerseite kommt klicke bitte einfach noch mal auf "Wächseln zu" dann müsste es gehen so ist es jedenfals bei mir