子窗口调用父窗口函数是比较常用的编程技术,通常用于把功能分解模块化到多窗口的程序中,比如一个程序有登陆窗口、主窗口、管理窗口、编辑窗口、查询窗口等,就需要父子窗口之间互相通信,互相操作对方。下面演示一个最简单的父子窗口互动编程教程:
1.新建win窗口工程
2.工程资源管理器资源文件文件夹上右键,新建窗口文件
3.把child1.aardio拖到main.aardio里,会自动生成引用代码
4.在子窗口上放一个按钮,双击进去,写上代码
5.在主窗口里写上函数
这里要注意把函数作为主窗口mainForm的成员函数,不然子窗口调用时会报null。

主窗口源码:

import win.ui;
/*DSG{{*/
mainForm = win.form(text="简码编程 jianma123.com";right=759;bottom=469)
mainForm.add(
edit={cls="edit";left=14;top=246;right=743;bottom=455;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;z=1}
)
/*}}*/

//注意这里是 mainForm. 即是 主窗口加法 变成了mainForm的成员函数
mainForm.主窗口加法 = function(a,b){
win.msgbox(a+b)
}


var frmChild,wb = mainForm.loadForm("\res\child1.aardio");
frmChild.show();


mainForm.enableDpiScaling();
mainForm.show();

return win.loopMessage();

子窗口源码:

import win.ui;
/*DSG{{*/
var winform = win.form(text="简码编程 jianma123.com 子窗口";right=387;bottom=241;parent=...)
winform.add(
button={cls="button";text="button";left=122;top=83;right=256;bottom=139;z=1}
)
/*}}*/
//注意窗口构建代码里有 parent=...

winform.button.oncommand = function(id,event){
winform.parent.主窗口加法(1,2);// winform.parent指的是用loadForm()加载之个子窗口的父对象

}


winform.enableDpiScaling();
winform.show();

win.loopMessage();
return winform;//注意这里返回窗口对象给父窗口

其它:
父子窗口的互相调用操作,还有在父窗口或子窗口里定义全局变量、全局函数等方法,请自行研究。