Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Comment régler la transparence d'une fenêtre ?
auteur : Progi1984

Ce code fonctionne sous Windows 2000 et supérieur. Il utilise l'API Windows.

Global Alpha.l = 50

If OpenWindow(0, 100, 200, 200, 200, "Transparence fenêtre")
  ; Crée la liste de gadgets
  If CreateGadgetList(WindowID(0))
    ButtonGadget(0, 0, 0, 100, 100, "Appliquer la transparence à la fenêtre",#PB_Button_MultiLine)  
    ButtonGadget(1, 100, 100, 100, 100, "Changer la valeur de la transparence",#PB_Button_MultiLine)
  EndIf
  
  Repeat
    EventID = WaitWindowEvent()

    If EventID = #PB_Event_CloseWindow
      Quit = 1
    EndIf
    If EventID = #PB_Event_Gadget
      GadgetID = EventGadget()
      If GadgetID = 0
        SetWindowLong_(WindowID(0), #GWL_EXSTYLE, #WS_EX_LAYERED)
        SetLayeredWindowAttributes_(WindowID(0), 0, 255 * Alpha / 100, #LWA_ALPHA) 
      EndIf
      If GadgetID = 1
        Alpha = Val(InputRequester("Transparence", "Valeur en % (entre 0 et 100)", "50"))
      EndIf
    EndIf

  Until Quit = 1
  
EndIf

Comment faire pour que ma fenêtre soit toujours au premier plan ?
auteur : Progi1984
La technique utilisée est l'utilisation d'une fonction fournie par PureBasic StickyWindow(). Le premier argument est l'identifiant de la fenêtre. Le second active ou désactive la mise au premier plan.

If OpenWindow(0, 100, 200, 200, 200, "Fenêtre au premier plan", #PB_Window_SystemMenu)
  ; Crée la liste de gadgets
  If CreateGadgetList(WindowID(0))
    ButtonGadget(0, 0, 0, 100, 100, "Activer")  
    ButtonGadget(1, 100, 100, 100, 100, "Désactiver")
  EndIf
  
  Repeat
    EventID = WaitWindowEvent()

    If EventID = #PB_Event_CloseWindow
      Quit = 1
    
    ElseIf EventID = #PB_Event_Gadget
      GadgetID = EventGadget()
      
      If GadgetID = 0
        StickyWindow(0, #True)
        SetWindowTitle(0, "Premier plan activé") 
      
      ElseIf GadgetID = 1
        StickyWindow(0, #False)
        SetWindowTitle(0, "Premier plan désactivé") 
      
      EndIf

    EndIf

  Until Quit = 1
  
EndIf

Comment désactiver le bouton de fermeture d'une fenêtre ?
auteur : Progi1984

Dans ce cas, il faut utiliser l'API Windows.
Utilisez la touche [Echap] pour quitter le programme.

If OpenWindow(0, 100, 200, 300, 200, "Désactive le bouton de fermeture",#PB_Window_SystemMenu)

  ; Retourne l'identifiant du menu système
  hSysMenu = GetSystemMenu_(WindowID(0), #False)
  ; Efface un élément du menu
  RemoveMenu_(hSysMenu, #SC_CLOSE, #MF_BYCOMMAND)
  ;Mise à jour du menu
  DrawMenuBar_(WindowID(0))
    
  Repeat
    EventID = WaitWindowEvent()

    If GetAsyncKeyState_(#VK_ESCAPE)
      Quit = 1
    EndIf

  Until Quit = 1
  
EndIf

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2008  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com