admin 發表於 2016-1-28 15:54:59

IFS客户端窗口句柄(handle)

IFS客户端窗口句柄有:hWndForm,hWndItem,hWndMDI,hWndParent,i_hWndFrame,i_hWndSelf,i_hWndParent 1.hWndForm:       为Centura(非IFS)内置Windows handle类型变量,在不同的上下文有不同的含义:       内部函数(Internal Function),窗口函数(Window Function),类函数(Class Function): hWndForm为调用该函数的顶层窗口的句柄;       菜单处理(Menu Actions): hWndForm 为包含该菜单的顶层窗口的句柄;       消息处理(Message Actions): hWndForm为接收该消息的顶层窗口的句柄;但child table例外,在它的消息里hWndForm为该子窗口的句柄.       MDI窗口:在MDI函数,消息处理(message actions)以及菜单处理中hWndForm为最顶层MDI子窗口的句柄.2.hWndItem:和hWndForm类似,但为当前窗口或控件的句柄;3.hWndMDI:为Centura(非IFS)内置Windows handle类型变量,为当前MDI窗口的句柄,若没有则为空,对于IFS hWndMDI永远不为空;4.hWndParent:为Centura(非IFS)内置Windows handle类型变量当前窗口的父窗口;5.i_hWndFrame,i_hWndSelf,i_hWndParent:为IFS在cObjectRelationManager类定义的三个句柄,       分别是顶层窗口(仅包括DialogBox,Form,Table窗口以及子窗口)句柄,当前窗口句柄,父窗口句柄;       只适用于IFS框架定义的窗口或控件类型,即继承自cObjectRelationManager,一般的Centura的标准窗口或控件是不能使用这三个变量的;i_hWndFrame使用方法为[i_hWndFrame.窗体ID.子窗体],例如:i_hWndFrame.frmInventoryPart.dfsCodei_hWndSelf:为当前窗口句柄,根据上下文而变化,出现这样的代码时候,一般会报错:i_hWndSelf.frmInventoryPart.dfsCode例如若在DataField内的,i_hWndSelf为DataField的句柄,i_hWndParent才为上级窗口的句柄;i_hWndParent:也根据调用的上下文而变,即同一环境中i_hWndParent=SalParentWindow(i_hWndSelf);由于上面的差别所以使用QualifiedItemNameGet( i_hWndFrame )和QualifiedItemNameGet( i_hWndSelf )是不同的;需要指明的是IFS窗体基本都继承自cObjectRelationManager,所以hWndForm.frmInventoryPart.dfsCode相当于i_hWndFrame.frmInventoryPart.dfsCode,但一般使用后者; 以上"窗口"若未特别指明,含义包括DataField,ComboBox等控件;
頁: [1]
查看完整版本: IFS客户端窗口句柄(handle)