ウィンドウの描画をロック・解除 <TOP>
LockWindowUpdate
指定されたウィンドウ内での描画を無効または有効にする
GetDesktopWindow Windowsのデスクトップウィンドウを識別
'================================================================ '= ウィンドウの描画をロック・解除 '= (LockWindowUpdate.bas) '================================================================ #include "Windows.bi" ' 指定されたウィンドウ内での描画を無効または有効にする Declare Function Api_LockWindowUpdate& Lib "user32" Alias "LockWindowUpdate" (ByVal hwndLock&) ' Windowsのデスクトップウィンドウを識別。返されるポインタは、一時的なポインタ。後で使用するために保存しておくことはできない Declare Function Api_GetDesktopWindow& Lib "user32" Alias "GetDesktopWindow" () Var Shared Timer1 As Object Var Shared Button1 As Object Timer1.Attach GetDlgItem("Timer1") Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Timer1.SetInterval 1000 Timer1.Enable 0 End Sub '================================================================ '= ロック実行 '================================================================ Declare Sub Freeze () Sub Freeze() Var Ret As Long Ret = Api_LockWindowUpdate(Api_GetDesktopWindow) End Sub '================================================================ '= ロック解除 '================================================================ Declare Sub Defrost () Sub Defrost() Var Ret As Long Ret = Api_LockWindowUpdate(0) End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() A% = MessageBox("", "10秒間ロックします!", 0, 2) EnableWindow 0 Timer1.Enable -1 End Sub '================================================================ '= '================================================================ Declare Sub Timer1_Timer edecl () Sub Timer1_Timer() Timer1.Enable 0 Defrost A% = MessageBox("", "ロックを解除します!", 0, 2) EnableWindow -1 End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End