Und wenn du nach dem SetParent den Fokus erneut setzt und zwar auf das Fenster, welches den Fokus weiterhin besitzen soll?
Oder meinst du das Problem, wenn man auf das neue Unterfenster, welches setparent wurde, klickt, dass das Hauptfenster den Fokus verliert?
Also:
Code: Alles auswählen
EnableExplicit
Define EventID
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If OpenWindow(1001,100,100,300,200,"Window",#PB_Window_BorderLess|#PB_Window_Invisible)
TextGadget(1,10,10,100,20,"Text",0)
SetWindowColor(1001,RGB(100,100,100))
SetParent_(WindowID(1001),WindowID(0))
HideWindow(1001,0)
EndIf
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Meinst du dieses Problem?
Wenn ja, könntest ja so machen, damit der Fokus des Hauptfensters erhalten bleibt:
Code: Alles auswählen
EnableExplicit
Define EventID
Define oldStyle
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If OpenWindow(1001,100,100,300,200,"Window",#PB_Window_BorderLess|#PB_Window_Invisible)
TextGadget(1,10,10,100,20,"Text",0)
SetWindowColor(1001,RGB(100,100,100))
SetParent_(WindowID(1001),WindowID(0))
HideWindow(1001,0)
oldStyle=GetWindowLongPtr_(WindowID(1001),#GWL_STYLE)
SetWindowLongPtr_(WindowID(1001),#GWL_STYLE,oldStyle|#WS_CHILD &(~#WS_POPUP))
SetWindowPos_(WindowID(1001), 0,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE|#SWP_NOZORDER|#SWP_FRAMECHANGED)
SetActiveWindow(0)
EndIf
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Falls du das nicht meintest, dann bitte erneute Problembeschreibung.
