Transparence

vbnino Messages postés 218 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 11 juillet 2010 - 24 juin 2007 à 20:25
vbnino Messages postés 218 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 11 juillet 2010 - 25 juin 2007 à 18:08
Salut!

 -Comment rendre un form transparente, que la form, les controls reste visible.

-Merci

9 réponses

jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
24 juin 2007 à 21:12
"Comment rendre un form transparente, que la form, les controls reste visible."

Précise, s'il te plait, notamment en ce qui concerne ce que tu entends exactement par "Form transprente" !
Transparente ou translucide ? (ce n'est pas la même chose ...)
0
vbnino Messages postés 218 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 11 juillet 2010
24 juin 2007 à 21:45
Transparente
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
24 juin 2007 à 22:12
Je vois....

Alors (et à toi d'en tirer ce qui te va, donc)..

Une Form.

Sur ta form, un bouton de command Compmand1 (juste pour que tu voies que lui, il reste opaque)
Un timer Tmer1

Ce code :

Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_TRANSPARENT = &H20&
Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_SHOWME = SWP_FRAMECHANGED Or _
SWP_NOMOVE Or SWP_NOSIZE
Private Const HWND_NOTOPMOST = -2


Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal HWND As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long


Private Declare Function SetWindowPos Lib "user32" (ByVal HWND As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long




Private Sub Form_Load()
  Timer1.Enabled = True
  Timer1.Interval = 1000
  Me.BackColor = vbBlue
  Me.Move Screen.Width / 3, Screen.Height / 3
End Sub


Private Sub Timer1_Timer()
  Static toto As Boolean
  If toto Then
    SetWindowLong Me.HWND, GWL_EXSTYLE, 0
    Me.Hide
    Me.Refresh
    Me.Show
  Else
     SetWindowLong Me.HWND, GWL_EXSTYLE, WS_EX_TRANSPARENT
     SetWindowPos Me.HWND, HWND_NOTOPMOST, 0&, 0&, 0&, 0&, SWP_SHOWME
  End If
  toto = Not toto
End Sub

Voilà donc !


 


Lance et vopis ce qui se passe !
0
vbnino Messages postés 218 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 11 juillet 2010
25 juin 2007 à 13:59
Salut!

 -J'ai écris le code , mais pour-quoi ça ne marche pas bien , ça cligniote

-Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
25 juin 2007 à 14:30
Evidemment que ça clignote (toutes les secondes, même )...
Voilà exactement ce que je voulais savoir... et je le sais maintenant !
Tu ne sais pas analyser... juste copier/coller... mais tu veux approcher l'utlisation de fonctions de l'API !
Je t'ai pourtant tout donné, là ... mais tu ne sais qu'en faire...
Ne compte pas sur moi pour aller plus loin (je ne veux pas être le complice de çà !!!)
0
vbnino Messages postés 218 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 11 juillet 2010
25 juin 2007 à 14:41
Excuse moi , ta raison je fais que copie\coller , mais maintenant j'ai bien veu le code et j'ai fais des modification voila:

Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_TRANSPARENT = &H20&
Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_SHOWME = SWP_FRAMECHANGED Or _
SWP_NOMOVE Or SWP_NOSIZE
Private Const HWND_NOTOPMOST = -2
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal HWND As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal HWND As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Sub Form_Load()
  Timer1.Enabled = True
  Timer1.Interval = 1000
  Static toto As Boolean
 
 If toto Then
    SetWindowLong Me.HWND, GWL_EXSTYLE, 0
    Me.Hide
    Me.Refresh
    Me.Show
  Else
     SetWindowLong Me.HWND, GWL_EXSTYLE, WS_EX_TRANSPARENT
     SetWindowPos Me.HWND, HWND_NOTOPMOST, 0&, 0&, 0&, 0&, SWP_SHOWME
  End If

  End Sub
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
25 juin 2007 à 15:16
Hé bé !!!
Tu vas analyser, oui ?
Et te débarrasser de ce timer, oui ?????
et ne prendre dans le timer que ce qui te convient, oui ????
C'est pas vrai, çà !!!!!!

Tu développes ou tu t'amuses ????
0
vbnino Messages postés 218 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 11 juillet 2010
25 juin 2007 à 17:30
Que veux tu dire par la?
0
vbnino Messages postés 218 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 11 juillet 2010
25 juin 2007 à 18:08
Merci
0