プログラム言語 FreeBasic |
Close_Window
Close_Window(hwnd)
Sub Close_Window(ByVal hWin As HWND)
現在のウィンドウを閉じる。(破棄する)
ウィンドウに加えて、ガジェットも破棄されますが、ガジェット、メニューなどに割り当てられたリソースはクリアされないことに注意して下さい。これらのリソースはほとんどメモリを消費しませんが、それでも、ガジェットとメニューを繰返し作成・削除すると、メモリリークが目立つ値にまで増大する可能性があります。
したがって、ウィンドウを削除する前に、FreeGadget、Delete_Menu を使って、このウィンドウに配置されているガジェットとメニューを削除する必要があります。
hWin - 削除するウィンドウ
Windows , Linux
#Include "window9.bi"
Enum
BUTTON = 1
TEXT
EDITOR
End Enum
Sub FreeGadgets()
For i As Long = BUTTON To EDITOR
FreeGadget(i)
Next
End Sub
Dim As Long event
Dim As HWND hwnd
hwnd = OpenWindow("Hello",10,10,150,250)
EditorGadget(EDITOR,10,10,100,100)
TextGadget(TEXT,10,120,100,30,"textstring")
ButtonGadget(BUTTON,10,160,70,30,"button")
Do
event=WaitEvent()
If Event=EventClose Then
If EventHwnd()=hwnd Then
FreeGadgets()
Close_Window(hwnd)
Exit Do
EndIf
EndIf
Loop
#Include "window9.bi"
Var hwnd = OpenWindow("Hello",10,10,500,500)
Var event=0
Var close_=0
Do
event=WaitEvent()
If Event=EventClose Then
If EventHWND()=hwnd Then
Close_Window(hwnd)
close_=1
EndIf
EndIf
Loop Until close_= 1