[AX]AX2012 工具DEV_Toolbar修改版

做过AX开发的一定知道tabax这样一个算是AX插件的工具,它是直接用X++写成,运行后打开一个form,form上提供一些工具可以很方便的浏览表数据等,但最为实用的不妨是多了一个tab来切换窗口,这对AX开发时经常打开多个窗口是非常的有用。在这个网页上可以下载到支持AX 3.0、4.0的版本,以及支持2009的一个beta版本。

在AX2012平台上有一位热心公益的同学开发了类似tabax的工具称为DEV_Toolbar,使用了winapi和托管代码,实现的功能和tabax也类似。DEV_Toolbar工程中提供了名为“DEV_Toolbar”的menuitem,连接到显示工具栏和tab的form。我们可以是SysAutoRun的方法在启动AX客户端时运行这个菜单项,而不需要手工的来打开这个工具form。但问题是使用这种启动运行的方法,只会在打开第一个workspace窗口的时候运行,再“new development workspace”的时候就不会再运行了,好在info类中多了一个workspaceWindowCreated()方法,在每打开一个workspace后被调用,我们在这里运行一下菜单项就可以了:

void workspaceWindowCreated(int _hWnd)
{
    MenuFunction mf;
    ;
    super(_hWnd);

    // Put workspace window specific initialization here.
    mf=new MenuFunction(menuitemDisplayStr(DEV_Toolbar), MenuItemType::Display );
    mf.run();

}

这只是第一个问题,第二个问题AX2012分业务的workspace和开发的workspace,后者是专门开发专用的,dev_toolbar工具也在这里才有用,这样不分两种workspace都运行工具窗口显然不那么好,那怎么来判断当前workspace是开发workspace呢?使用spy++仔细观察两者的窗体结构,会发现在业务workspace的MDIClient窗口下有一个“ContentFrame” class类型的窗口content pane,它用来显示area page、list page这样的数据,这是开发workspace所没有的,根据这个就可以区分开两种workspace了,具体的实现不说了,大家下载附件看看吧。

最后向TABAX、DEV_Toolbar作者的无私奉献致敬。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值