嵌入控件的控件,最好用wndproc回调函数处理消息。否则应在父控件窗口中转发命令消息 示例1 import win.ui; /*DSG{{*/ var winform = ..win.form( bottom=399;parent=...;text="AAuto Form";right=599 ) winform.add( listview={ bgcolor=16777215;bottom=291;right=520;left=21;top=46;z=1;gridLines=1;edge=1;cls="listview" }; edit={ text="edit";bottom=363;right=431;left=82;top=337;z=2;edge=1;cls="edit" } ) /*}}*/ winform.listview.insertColumn("dfdfd",150) winform.listview.insertColumn("dfdfd",150) winform.listview.insertColumn("dfdfd",-1) winform.listview.addItem({"sdfsdf";‘sdfd645‘;‘fkdl‘}) // 插入控件 winform.listview.addCtrl( btn = { cls="button";left=0;top=0;right=50;bottom=50;autoResize=false ;edge=1; oncommand=function(id,event){ winform.msgboxTest(winform.edit.text) } } ) //winform.cmdTranslate 转发命令消息,在父控件wndproc消息回调中调用,用于启用子控件的oncommand事件. winform.listview.wndproc = function(hwnd,message,wParam,lParam){ winform.cmdTranslate(hwnd,message,wParam,lParam); } // 设置内嵌控件的位置 var rc = winform.listview.getItemRect(1,3,,2) winform.listview.btn.setRect(rc) winform.show() win.loopMessage(); 示例 2 import win.ui; /*DSG{{*/ var winform = ..win.form( bottom=356;parent=...;text="AAuto Form";right=351 ) winform.add( listview={ bgcolor=16777215;bottom=296;right=309;left=37;top=41;z=1;edge=1;cls="listview" } ) /*}}*/ winform.listview.addCtrl( btn1 ={ cls="button";left=0;top=0;right=50;bottom=50;autoResize=false ;hide=1;edge=1;hide=0;text="btn1";id=100;z=1 }; btn2 ={ cls="button";left=0;top=52;right=50;bottom=102;autoResize=false ;hide=1;edge=1;hide=0;text="btn2";id=101;z=2 }; btn3 ={ cls="button";left=0;top=104;right=50;bottom=154;autoResize=false ;hide=1;edge=1;hide=0;text="btn3";id=102;z=3 }; btn4 ={ cls="button";left=0;top=156;right=50;bottom=206;autoResize=false ;hide=1;edge=1;hide=0;text="btn4";id=103;z=4 }; ) winform.listview.wndproc = function(hwnd, message, wParam, lParam) { winform.cmdTranslate(hwnd, message, wParam, lParam); } winform.listview.btn1.oncommand = function () { winform.msgbox("我是 btn1"); } winform.listview.btn2.oncommand = function () { winform.msgbox("我是 btn2"); } winform.show() win.loopMessage();
原文:https://www.cnblogs.com/yaoyue68/p/10486346.html