锘??xml version="1.0" encoding="utf-8" standalone="yes"?> function event_handler_g (self) function event_handler1 (self) my_menu_test = function my_create_menu2(menu_define_table)
local items={}
for k,v in pairs(menu_define_table) do if type(v) =='string' then if type(v) =='table' then my_main_frame=iup.frame dlg = iup.dialog dlg:showxy(iup.CENTER,iup.CENTER)
if (not iup.MainLoopLevel or iup.MainLoopLevel()==0) then 鍚庤,宸茬粡鍙戝竷鍦ㄤ簡鎴戠殑綺樿創閲?涓嶈繃瀹冧笂闈㈣鏄牴鎹椂闂磋闂潵鍒犻櫎鏃у笘瀛愮殑,鎴戞曟椂闂翠箙浜嗚繖鐐硅蹇嗗啀娌℃湁浜?/p>
涓嬮潰鐨勮繖孌典唬鐮佸彲浠ョ洿鎺ュ湪LuaForWindows鐨凷cite涓繍琛?榪欎釜鍑芥暟鐨勬槸浠跨収LuaForWindows鑷甫鏁欑▼涓殑閭d釜鍒涘緩iup鑿滃崟鐨勫嚱鏁板啓鐨?鏀硅繘鐨勪竴涓湴鏂規槸鍙互鐢ㄤ竴涓秷鎭鐞嗗洖璋冨嚱鏁版潵鍝嶅簲澶氫釜鑿滃崟欏?鐒跺悗鍐嶇粺涓dispatch,涓漢璁や負鍐欐硶涓婃瘮鐩存帴鎶婅繘琛屽疄闄呭鐞嗙殑鍑芥暟鍐欏湪鑿滃崟瀹氫箟琛ㄥ墠闈㈢編瑙備竴浜?
璇存潵鎯劎,灝辨敼鍐欑殑榪欎釜灝忓嚱鏁?涔熸槸璋冭瘯浜嗕竴澶т細鎵嶅紕濂界殑,鍒氭帴瑙ua鐨勬椂鍊?灝辨槸涓嶇啛緇冨晩...(搴熻瘽? !)
require 'cdlua'
require 'iuplua'
require 'iupluacd'
iup.Message(self.title,'dispatch message')
end
iup.Message(self.title,'event 1 dispatch message')
end
function event_handler2 (self)
iup.Message(self.title,'event 2 dispatch message')
end
function event_handler3 (self)
iup.Message(self.title,'event 3 dispatch message')
end
{
nil,'M1',{event_handler_g,'M11','M12','M13',{event_handler3,'M21','M22',},},'M2',{event_handler_g,'M22','M23',},
}
if type(v) == 'function' or type(v)=='nil' then
--~ event_handler=v
___my_library__global__event_handler=v
end
--~ local item=iup.item{title=v,action=event_handler}
local item=iup.item{title=v,action=___my_library__global__event_handler}
table.insert(items,item)
end
m1_menu_title=table.remove(items)
local item=iup.submenu {my_create_menu2(v),title=tostring(m1_menu_title.title)}
table.insert(items,item)
end
end--end of for
return iup.menu(items)
end
{
iup.canvas
{
cursor='CROSS',
scrollbar='VERTICAL',
posy=0.0,
ymax=0.8,
}
}
{
my_main_frame,
size="HALFxHALF",
title="finally I got the expected result",
menu=my_create_menu2(my_menu_test),
}
iup.MainLoop()
end