Fenster in Fenster (child window)...
Verfasst: 11.12.2008 10:48
wie kann ich das child window über mein Menü schließen:
Code: Alles auswählen
Global hwnd.l,OldProc.l
hInstance = GetModuleHandle_(0)
Procedure ChildCallback(Window, Message, wParam, lParam)
Result = CallWindowProc_(OldProc,Window,Message,wParam,lParam)
Select Message
Case #WM_CLOSE
DestroyWindow_(Window)
EndSelect
ProcedureReturn Result
EndProcedure
hwnd.l = OpenWindow(0, 0,0,640,480, "Ich habe ein Kindfenster", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
If hwnd
Style.l = #WS_POPUP|#WS_CHILD|#WS_CLIPCHILDREN|#WS_VISIBLE|#WS_CAPTION|#WS_MAXIMIZEBOX|#WS_MINIMIZEBOX
Child.l = CreateWindowEx_(0,"#32770","Ich bin das Kind",Style,0,0,320,240,0,0,hInstance,0)
OldProc = SetWindowLong_(Child,#GWL_WNDPROC,@ChildCallback())
SetParent_(Child,hwnd)
If CreateMenu(0, WindowID(0)) ; hier beginnt das Erstellen des Menüs...
MenuTitle("Project")
MenuItem(1, "Open Child" +Chr(9)+"Ctrl+O")
MenuItem(2, "Close Child" +Chr(9)+"Ctrl+O")
EndIf
Repeat
EventID.l = WaitWindowEvent()
If EventID = #PB_Event_Menu
Select EventMenu()
Case 1 : ;open
Case 2 : ;???;close
EndSelect
EndIf
If EventID = #PB_Event_CloseWindow ; If the user has pressed on the close button
Quit = 1
EndIf
Until Quit = 1
EndIf
End