Hello comunity,
Do anyone knows how to get the handle of a tab in a panelgadget?
A tab is a clientwindow linke a panelgadget. If i can get the handle of 
the panelgadget, then i could get the handle of a tab. But i don't know how to do it.
			
			
									
									Handle of a paneltab
- Hroudtwolf
 - Addict

 - Posts: 803
 - Joined: Sat Feb 12, 2005 3:35 am
 - Location: Germany(Hessen)
 - Contact:
 
Hmmmm... I can give you some ugly code I use to detect right-mouse clicks on a panelgadget to see if it can get you started.  Unfortunately, it's a piece of larger code so it may be confusing to look at.  Just imagine that the panelgadget is inside of a containergadget which is inside of a splitter gadget 
  My code is most likely not the best route to go but it works for me.  I use it for a pop-up window on my panelgadget with right-clicks.
I use this before the main processing of events so there's a little boolean in there to prevent event checking if this is valid.  Hope it's a little helpful ^_^;;
			
			
									
									
						Code: Select all
If fTypeMain\EventID = #WM_RBUTTONDOWN
         GetCursorPos_(@cursor_pos.POINT)
         ScreenToClient_(WindowID(0),@cursor_pos)
         hChild = ChildWindowFromPoint_(WindowID(0), cursor_pos\X,cursor_pos\Y)
         If hChild = GadgetID(#SplitMain)
            GetCursorPos_(@cursor_pos.POINT)
            ScreenToClient_(hChild,@cursor_pos)
            hChild = ChildWindowFromPoint_(hChild, cursor_pos\X,cursor_pos\Y)
            If hChild = GadgetID(#ContainerLines)
               GetCursorPos_(@cursor_pos.POINT)
               ScreenToClient_(hChild,@cursor_pos)
               hChild = ChildWindowFromPoint_(hChild, cursor_pos\X,cursor_pos\Y)
               If GetDlgCtrlID_(hChild) = #PanelSections
                  bFormMainProcessEvents = #False
                  DisplayPopupMenu(#MenuPopupSections,WindowID())
               Else
                  bFormMainProcessEvents = #True
               EndIf
            EndIf
         EndIf
      EndIf** Edit**Oh forgot:
Use the Winapi EnumChildWindows function with the handler from the panelgadget
Quote from WinApi
PB Example of how to get the handler of the tabs..
Henrik
			
			
									
									
						Use the Winapi EnumChildWindows function with the handler from the panelgadget
Quote from WinApi
Code: Select all
BOOL EnumChildWindows(    HWND  hWndParent,	// handle of parent window    WNDENUMPROC  lpEnumFunc,	// address of callback function  LPARAM  lParam 	// application-defined value   );
PB Example of how to get the handler of the tabs..
Code: Select all
; PureBasic Visual Designer v3.90 build 1361
;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
  #Panel_0
EndEnumeration
Global PHwnd.l,Number.l
Number.l=0
Procedure WNDENUMPROC (Hwnd, LPARAM)
    
        Debug Hwnd
        Debug "-----"     
        
        SetGadgetItemText(#Panel_0,Number.l, "Tab_Hnd: = "+Str(Hwnd),0)
        Number.l+1
       
        
        EnumChildWindows_(Hwnd, @WNDENUMPROC(), LPARAM+1)
    ProcedureReturn #TRUE
    
EndProcedure
Procedure Open_Window_0()
  If OpenWindow(#Window_0, 275, 258, 600, 300,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Tab")
    If CreateGadgetList(WindowID())
      
      ;- Panel0
      PHwnd=PanelGadget(#Panel_0, 60, 40, 435, 200)
            AddGadgetItem(#Panel_0, -1, "Tab 1")
            AddGadgetItem(#Panel_0, -1, "Tab 2")
            AddGadgetItem(#Panel_0, -1, "Tab 3")
      CloseGadgetList()
      
    EndIf
  EndIf
EndProcedure
Open_Window_0()
EnumChildWindows_( PHwnd, @WNDENUMPROC(), 0)
Repeat
  
  Event = WaitWindowEvent()
  
  If Event = #PB_EventGadget
    
    ;Debug "WindowID: " + Str(EventWindowID())
    
    GadgetID = EventGadgetID()
    
    If GadgetID = #Panel_0
     ; Debug "GadgetID: #Panel_0"
      
    EndIf
    
  EndIf
  
Until Event = #PB_EventCloseWindow
End
- Hroudtwolf
 - Addict

 - Posts: 803
 - Joined: Sat Feb 12, 2005 3:35 am
 - Location: Germany(Hessen)
 - Contact:
 
