// **************************************************************************** // // ** ** // // ** Class : cHeader ** // // ** ** // // ** Purpose : Wrapper class for header control ** // // ** ** // // ** Author : Ulbe Stellema ** // // ** Data Access Worldwide ** // // ** ** // // ** Date : Januari 15, 2002 ** // // ** ** // // **************************************************************************** // Use cGrid.h Class cHeader Is a cWinControl // Procedure : Construct_Object // Purpose : Object constructor Procedure Construct_Object Set External_Class_Name "DFUlbeHeader" To "SysHeader32" Forward Send Construct_Object // Private properties Property Handle Private.phoImageList Set Window_Style To HDS_BUTTONS True //Set Window_Style To CCS_TOP True Set Window_Style To WS_CHILDWINDOW True Set Window_Style To WS_VISIBLE True Set Window_Style To WS_CLIPSIBLINGS True // False works! //Set Window_Style To WS_CLIPCHILDREN True Set Window_Style To WS_TABSTOP False Set Extended_Window_Style To WS_EX_TRANSPARENT True Set Focus_Mode To Pointer_Only // Focusable // Pointer_Only End_Procedure // Construct_Object // Procedure : Page // Purpose : Sets window styles Procedure Page_Object Integer iState Integer iStyle iResult Forward Send Page_Object iState If (iState) Begin Move (GetWindowLong(Window_Handle(Self),GWL_STYLE)) To iStyle If (pbReorderColumns(Self)) Move (SetWindowLong(Window_Handle(Self),GWL_STYLE,iStyle iOr HDS_DRAGDROP)) To iResult Else Move (SetWindowLong(Window_Handle(Self),GWL_STYLE,iStyle-(iStyle iAnd HDS_DRAGDROP))) To iResult End // If (iState) Begin End_Procedure // Page_Object // Procedure : OnNotify // Purpose : Handles WM_NOTIFY Procedure Notify Integer wParam Integer lParam Returns Integer Integer iResult iCode iWidth iItem iItems iCounter iOrder String sHdr sItem sArray Handle hoColumn Pointer pItem ZeroType NMHDR To sHdr Move (CopyMemory(AddressOf(sHdr),lParam,NMHDR_Size)) To iResult GetBuff From sHdr at NMHDR.code To iCode Case Begin Case (iCode = HDN_BEGINDRAG) Case Break Case (iCode = HDN_BEGINTRACKA) ZeroType NMHEADER To sHdr Move (CopyMemory(AddressOf(sHdr),lParam,NMHEADER_Size)) To iResult GetBuff From sHdr at NMHEADER.pItem To pItem GetBuff From sHdr at NMHEADER.iItem To iItem ZeroType HDITEM To sItem Move (CopyMemory(AddressOf(sItem),pItem,HDITEM_Size)) To iResult GetBuff From sItem at HDITEM.cxy To iWidth Move (ObjectFromIndex(Self,iItem)) To hoColumn If (pbResize(hoColumn)) Procedure_Return 0 Else Procedure_Return 1 Case Break Case (iCode = HDN_DIVIDERDBLCLICKA) Case Break Case (iCode = HDN_ENDDRAG) Send RepaintGrid Case Break Case (iCode = HDN_ENDTRACKA) Case Break Case (iCode = HDN_GETDISPINFOA) Case Break Case (iCode = HDN_ITEMCHANGEDA) ZeroType NMHEADER To sHdr Move (CopyMemory(AddressOf(sHdr),lParam,NMHEADER_Size)) To iResult GetBuff From sHdr at NMHEADER.pItem To pItem GetBuff From sHdr at NMHEADER.iItem To iItem ZeroType HDITEM To sItem Move (CopyMemory(AddressOf(sItem),pItem,HDITEM_Size)) To iResult GetBuff From sItem at HDITEM.cxy To iWidth Move (ObjectFromIndex(Self,iItem)) To hoColumn Set piWidth Of hoColumn To iWidth //Move (InvalidateRect(Window_Handle(Self),0,True)) To iResult Send Private.AdjustHorizontalBar Send Private.AdjustHeader Send RepaintGrid Case Break Case (iCode = HDN_ITEMCHANGINGA) Case Break Case (iCode = HDN_ITEMCLICKA) Case Break Case (iCode = HDN_ITEMDBLCLICKA) Case Break Case (iCode = HDN_TRACKA) Case Break Case End Procedure_Return False End_Procedure // Notify // Procedure : Set phoImageList // Purpose : Sets imagelist for Header control Procedure Set phoImageList Integer hoObject Handle hImageList Integer iResult Set Private.phoImageList To hoObject If (Window_Handle(Self)) Begin Move (Window_Handle(hoObject)) To hImageList If (hImageList) Move (SendMessage(Window_Handle(Self),HDM_SETIMAGELIST,0,hImageList)) To iResult End // If (Window_Handle(Self)) Begin End_Procedure // Set phoImageList // Function : phoImageList // Purpose : Returns the imagelist for the Header control Function phoImageList Returns Integer Function_Return (Private.phoImageList(Self)) End_Function // phoImageList End_Class // cHeader