文档介绍:1PowerBuilder和MapInfo的集成开发技术论文,计算机论文论文,论文PowerBuilder和MapInfo的集成开发技术)。然后,编写一个在MapInfo服务器中运行的MapBasic应用程序,在此应用程序中添加对地图窗口事件进行处理的子程序。当对客户程序中的集成地图窗口进行操作时,MapBasic程序中对应的事件处理程序被触发。在事件处理程序中,可以将要传递给客户程序的信息保存到MapBasic中定义的一个全局变量中,然后使用Win32API函数PostMessage(),以PowerBuilder应用窗口的句柄和该窗口的用户自定义事件的ID为参数,向PowerBuilder客户程序发送消息,这样PowerBuilder客户程序就可以在该窗口的用户自定义事件中处理地图窗口事件了,并且还可以使用MBApplications对象的方法,获取MapBasic全局变量中保存的事件信息。如下代码展示了MapBasic应用程序在接收到地图对象选择事件时的处理的过程:'预定义PowerBuilder应用窗口的用户自定义事件的唯一数值标识符DEFINESELECTION_MADE1024'响应地图对象选择事件2SubSelChangedHandler()'mandInfo(CMD_INFO_SELTYPE)=1Then'保存地图对象所在的表的名称g_seltabname=SelectionInfo(SEL_INFO_TABLENAME)'向PowerBuilder客户程序发送消息iRc=PostMessage(g_pbhwnd_bg,SELECTION_MADE,0,0)EndIfEndSub下面的程序段中给出了实现回调时PowerBuilder客户程序的处理过程。。在MapBasic程序中保存事件信息的变量为g_SelTabName,而g_PbHWnd是MapBasic程序中用来接收PowerBuilder客户程序窗口句柄的全局变量。//("RunApplication~""+gs_AppDir+"~"")//创建对MapBasic应用程序进行控制的OLE自动化对象MBAppOleObject=CreateOleObjectMBAppOleObject=(1)//传递PowerBuilder客户程序中的窗口句柄给MapBasic应用程序//("g_pbhwnd_bg").Value=String(Handle(this))由下面代码所示的PowerBuilder客户程序就可以在窗口w_map的用户自定义事件ue_SelectionMade中处理地图窗口事件://mandInfo=("mandInfoString").,它具有对地图对象的管理、对含有