Styles appliqués à une fenêtre

Programmation d'applications complexes
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

J'ai ca aussi :
Vous déplacer la souris sur la fenêtre ou gadget qui vous intéresse
Vous attendez que la barre soit à 100%
Vous cliquer sur "Figer" pour mémoriser et zou

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 4
;
; Explication du programme :
; Obtenir des informations sur la fenêtre sous la souris, ainsi que toutes les fenêtres parentes.

Structure Style_Info
  Value.l
  Text.s
EndStructure
Global NewList Style.Style_Info()
;{ Liste des styles
AddElement(Style()) : Style()\Value = #WS_BORDER : Style()\Text = "#WS_BORDER"
AddElement(Style()) : Style()\Value = #WS_CAPTION : Style()\Text = "#WS_CAPTION"
AddElement(Style()) : Style()\Value = #WS_CHILD : Style()\Text = "#WS_CHILD"
AddElement(Style()) : Style()\Value = #WS_CHILDWINDOW : Style()\Text = "#WS_CHILDWINDOW"
AddElement(Style()) : Style()\Value = #WS_CLIPCHILDREN : Style()\Text = "#WS_CLIPCHILDREN"
AddElement(Style()) : Style()\Value = #WS_CLIPSIBLINGS : Style()\Text = "#WS_CLIPSIBLINGS"
AddElement(Style()) : Style()\Value = #WS_DISABLED : Style()\Text = "#WS_DISABLED"
AddElement(Style()) : Style()\Value = #WS_DLGFRAME : Style()\Text = "#WS_DLGFRAME"
AddElement(Style()) : Style()\Value = #WS_GROUP : Style()\Text = "#WS_GROUP"
AddElement(Style()) : Style()\Value = #WS_HSCROLL : Style()\Text = "#WS_HSCROLL"
AddElement(Style()) : Style()\Value = #WS_ICONIC : Style()\Text = "#WS_ICONIC"
AddElement(Style()) : Style()\Value = #WS_MAXIMIZE : Style()\Text = "#WS_MAXIMIZE"
AddElement(Style()) : Style()\Value = #WS_MAXIMIZEBOX : Style()\Text = "#WS_MAXIMIZEBOX"
AddElement(Style()) : Style()\Value = #WS_MINIMIZE : Style()\Text = "#WS_MINIMIZE"
AddElement(Style()) : Style()\Value = #WS_MINIMIZEBOX : Style()\Text = "#WS_MINIMIZEBOX"
AddElement(Style()) : Style()\Value = #WS_OVERLAPPED : Style()\Text = "#WS_OVERLAPPED"
AddElement(Style()) : Style()\Value = #WS_OVERLAPPEDWINDOW : Style()\Text = "#WS_OVERLAPPEDWINDOW"
AddElement(Style()) : Style()\Value = #WS_POPUP : Style()\Text = "#WS_POPUP"
AddElement(Style()) : Style()\Value = #WS_POPUPWINDOW : Style()\Text = "#WS_POPUPWINDOW"
AddElement(Style()) : Style()\Value = #WS_SIZEBOX : Style()\Text = "#WS_SIZEBOX"
AddElement(Style()) : Style()\Value = #WS_SYSMENU : Style()\Text = "#WS_SYSMENU"
AddElement(Style()) : Style()\Value = #WS_TABSTOP : Style()\Text = "#WS_TABSTOP"
AddElement(Style()) : Style()\Value = #WS_THICKFRAME : Style()\Text = "#WS_THICKFRAME"
AddElement(Style()) : Style()\Value = #WS_TILED : Style()\Text = "#WS_TILED"
AddElement(Style()) : Style()\Value = #WS_TILEDWINDOW : Style()\Text = "#WS_TILEDWINDOW"
AddElement(Style()) : Style()\Value = #WS_VISIBLE : Style()\Text = "#WS_VISIBLE"
AddElement(Style()) : Style()\Value = #WS_VSCROLL : Style()\Text = "#WS_VSCROLL"
;}

Global NewList StyleEx.Style_Info()
;{ Liste des styles étendus
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_ACCEPTFILES : StyleEx()\Text = "#WS_EX_ACCEPTFILES"
; AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_CAPTIONOKBTN : StyleEx()\Text = "#WS_EX_CAPTIONOKBTN"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_CLIENTEDGE : StyleEx()\Text = "#WS_EX_CLIENTEDGE"
; AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_CONTEXTMENU : StyleEx()\Text = "#WS_EX_CONTEXTMENU"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_DLGMODALFRAME : StyleEx()\Text = "#WS_EX_DLGMODALFRAME"
; AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_INK : StyleEx()\Text = "#WS_EX_INK"
#WS_EX_LAYERED = $00080000
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_LAYERED : StyleEx()\Text = "#WS_EX_LAYERED"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_LAYOUTRTL : StyleEx()\Text = "#WS_EX_LAYOUTRTL"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_LTRREADING : StyleEx()\Text = "#WS_EX_LTRREADING"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_NOACTIVATE : StyleEx()\Text = "#WS_EX_NOACTIVATE"
; AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_NOANIMATION : StyleEx()\Text = "#WS_EX_NOANIMATION"
; AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_NODRAG : StyleEx()\Text = "#WS_EX_NODRAG"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_NOINHERITLAYOUT : StyleEx()\Text = "#WS_EX_NOINHERITLAYOUT"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_OVERLAPPEDWINDOW : StyleEx()\Text = "#WS_EX_OVERLAPPEDWINDOW"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_PALETTEWINDOW : StyleEx()\Text = "#WS_EX_PALETTEWINDOW"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_RTLREADING : StyleEx()\Text = "#WS_EX_RTLREADING"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_STATICEDGE : StyleEx()\Text = "#WS_EX_STATICEDGE"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_TOOLWINDOW : StyleEx()\Text = "#WS_EX_TOOLWINDOW"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_TOPMOST : StyleEx()\Text = "#WS_EX_TOPMOST"
AddElement(StyleEx()) : StyleEx()\Value = #WS_EX_WINDOWEDGE : StyleEx()\Text = "#WS_EX_WINDOWEDGE"
;}

Procedure Analyse_Window(hwnd.l)
  
  Niveau = 0
  Element = -1
  ClearGadgetItemList(0)
  
  Repeat
    
    If Niveau = 0
      Element + 1 : AddGadgetItem(0, Element, "Sous la souris", 0, 0)
    Else
      Element + 1 : AddGadgetItem(0, Element, "Parent " + Str(Niveau), 0, 0)
    EndIf
    
    Element + 1 : AddGadgetItem(0, Element, "hWnd = " + Str(hWnd), 0, 1)
    SetGadgetItemState(0, Element - 1, #PB_Tree_Expanded)
    
    Text.s = Space(255)
    GetWindowText_(hWnd, @Text, 255)
    If Text
      Element + 1 : AddGadgetItem(0, Element, "Text = " + Text, 0, 1)
    EndIf
    
    Class.s = Space(255)
    GetClassName_(hWnd, @Class, 256)
    If Class
      Element + 1 : AddGadgetItem(0, Element, "Class = " + Class, 0, 1)
    EndIf
    
    Element + 1 : AddGadgetItem(0, Element, "Size", 0, 1)
    GetWindowRect_(hWnd, Size.RECT)
    Element + 1 : AddGadgetItem(0, Element, "Left = " + Str(Size\Left) + " / Right = " + Str(Size\Right), 0, 2)
    SetGadgetItemState(0, Element - 1, #PB_Tree_Expanded)
    Element + 1 : AddGadgetItem(0, Element, "Top = " + Str(Size\Top) + " / Bottom = " + Str(Size\Bottom), 0, 2)
    Element + 1 : AddGadgetItem(0, Element, "Width = " + Str(Size\Right - Size\Left), 0, 2)
    Element + 1 : AddGadgetItem(0, Element, "Height = " + Str(Size\Bottom - Size\Top), 0, 2)
    
    
    Window_Style = GetWindowLong_(hWnd, #GWL_STYLE)
    If Window_Style
      Element + 1 : AddGadgetItem(0, Element, "Style", 0, 1)
      ForEach Style()
        If Window_Style & Style()\Value
          Element + 1 : AddGadgetItem(0, Element, Style()\Text, 0, 2)
        EndIf
      Next
    EndIf
    
    Window_StyleEx = GetWindowLong_(hWnd, #GWL_EXSTYLE)
    If Window_StyleEx
      Element + 1 : AddGadgetItem(0, Element, "Style Ex", 0, 1)
      ForEach StyleEx()
        If Window_StyleEx & StyleEx()\Value
          Element + 1 : AddGadgetItem(0, Element, StyleEx()\Text, 0, 2)
        EndIf
      Next
    EndIf
    
    hWnd = GetParent_(hWnd)
    Niveau + 1
  Until hWnd = 0
  
  
EndProcedure

#Rafraichissement = 1000
#Vitesse = 50
#Temps_Max = #Rafraichissement / #Vitesse

#Largeur = 220

; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, #Largeur, 442, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0 Or CreateGadgetList(WindowID(0)) = 0
  End
EndIf

StickyWindow(0, 1)

TreeGadget(0, 0, 0, #Largeur, 400)
ButtonGadget(1, 0, 400, #Largeur, 22, "Figer", #PB_Button_Toggle)
ProgressBarGadget(2, 0, 422, #Largeur, 20, 0, #Temps_Max, #PB_ProgressBar_Smooth)

SetTimer_(WindowID(0), 1, #Vitesse, 0)
Temps = 0

Repeat
  Event = WaitWindowEvent()
  
  Select Event
      
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 1
          Figer = GetGadgetState(1)
      EndSelect
      
    Case #WM_TIMER
      Select EventwParam()
        Case 1
          Survol_Souris = WindowFromPoint_(DesktopMouseX(), DesktopMouseY())
          If Survol_Souris = Survol_Souris_Memoire And Figer = 0
            If Temps = #Temps_Max
              Analyse_Window(Survol_Souris)
              Temps + 1
            Else
              Temps + 1
              SetGadgetState(2, Temps)
            EndIf
          Else
            Temps = 0
            SetGadgetState(2, Temps)
            Survol_Souris_Memoire = Survol_Souris
          EndIf
      EndSelect
  EndSelect
  
Until Event = #PB_Event_CloseWindow

KillTimer_(WindowID(0), 1)

End
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Si si, c'est du bon!

J'aime bien ce petit arbre...
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Vraiment cool bravo !
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre