AX通过菜单可以多次打开同一个窗体,有些客户想同一个窗体只打开一次,如果第二次点击就把原来已经窗体显示在最上面。AX提供了一些API用来做这事,并且有合适的入口用来增加一些处理代码。
1.修改类工厂ClassFactory的FormRunClass方法














增加一个判断,判断当前客户端是否有该窗体的实例,如果有的话,就直接将窗体显示在最前端,并返回null。
2.修改SysSetupFormRun类的init方法,在Super()方法之后保存当前窗体的hwnd,以便以后调用。







3.修改SysSetupFormRun类的close方法,在关闭窗体时从全局缓存中去掉当前窗体。





OK,就这么简单。具体代码如附件所示。