Rahmenlose Fenster verschieben

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Rahmenlose Fenster verschieben

Beitrag 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?
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Rahmenlose Fenster verschieben

Beitrag 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
a²+b²=mc²
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Beitrag von Tsuki-Namida »

danke für die mühe aber es ist leider erfolgslos :(

die anwenung verrennt sich wieder...
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

vor SendMessage fehlt:

Code: Alles auswählen

ReleaseCapture_()
Und möglichst in ein Callback
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Beitrag 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
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Beitrag 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
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Bei dem Link sehe ich folgendes:
Extern Linken -Filetype
aber kein download oder keinen source
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Beitrag 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
Bild
Antworten