-- 你可以这样使用他
try DestroyDialog roll catch()
rollout roll "--"
(
button btn1 "0000"
on btn1 pressed do
(
for i = 1 to 500 do
(
windows.processPostedMessages() --将此函数加在此处可防止UI冻结
btn1.text = i as string
sleep 0.01
)
)
)
CreateDialog roll
-- 你可以这样使用他
try DestroyDialog roll catch()
rollout roll "--"
(
button btn1 "0000"
on btn1 pressed do
(
for i = 1 to 500 do
(
(dotnetclass"System.Windows.Forms.Application").DoEvents() --将此函数加在此处可防止UI冻结
btn1.text = i as string
sleep 0.01
)
)
)
CreateDialog roll
iGlobal = (dotnetClass "Autodesk.Max.GlobalInterface").Instance
maxSDK = iGlobal.MaxSDK
messageFilter = maxSDK.WindowsMessageFilter.Create()
fn checkMessages =
(
messageFilter.RunNonBlockingMessageLoop()
not messageFilter.Aborted
)
try DestroyDialog roll catch()
rollout roll "--"
(
button btn1 "0000"
on btn1 pressed do
(
hwnd = roll.hwnd --windows.getMAXHWND()
messageFilter.AddUnfilteredWindow (dotnetObject "System.IntPtr" hwnd)
for i = 1 to 500 do
(
checkMessages()
btn1.text = i as string
sleep 0.01
)
messageFilter.ClearUnfilteredWindowList()
)
)
CreateDialog roll
原文:https://www.cnblogs.com/trykle/p/11839001.html