Mise en form d'un userform

Signaler
Messages postés
9
Date d'inscription
vendredi 12 février 2010
Statut
Membre
Dernière intervention
3 mars 2010
-
Messages postés
9
Date d'inscription
vendredi 12 février 2010
Statut
Membre
Dernière intervention
3 mars 2010
-
AracnardAracnardBonjour,
Est il possible de changer la presentation d'un userform, c'est a dire de remplacer la croix de fermeture par un point rouge et la reduction par un point bleu ?

je souhaite le meme apparence que sur ce lien http://www.vbfrance.com/code.aspx?ID=34099

prog sous VBA (Visual Basic for Applications)
merci

8 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Bonjour,
Je crois t'avoir déjà répondu ! iici :
http://www.vbfrance.com/forum/sujet-DEPLACE-VB6-GT-VBA-MISE-FORME-USERFORM_1406029.aspx
=>> Non !
Tu peux toujours supprimer la barre de titre, par contre, et la remplacer par autre chose, mais tu ne peux modifier cette barre/système .
Relis ma réponse dabns tobn autre discussion.



____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Si tu veux faire disparaitre la barre de titre et de menu et que tu veux un bouton pour réduire ton userform, voilà un exemple vite fait (et à condition de mettre un caption dans ton userform):

Private Const SW_MINIMIZE = 6
Private Type POINTAPI
        x As Long
        y As Long
End Type
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
Private Type WINDOWPLACEMENT
        Length As Long
        flags As Long
        showCmd As Long
        ptMinPosition As POINTAPI
        ptMaxPosition As POINTAPI
        rcNormalPosition As RECT
End Type
Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function GetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function SetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32" Alias _
"GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
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 DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Dim Rectan As RECT, totohwnd As Long


Private Sub userForm_initialize()
    Dim mWnd As Long, Style As Long
   mWnd = FindWindow(vbNullString, Me.Caption)
   Style = GetWindowLong(mWnd, -16) And Not &HC00000 And Not &H40000
   SetWindowLong mWnd, -16, Style
   DrawMenuBar mWnd
   
   
    Dim WinEst As WINDOWPLACEMENT
    Dim rtn As Long
    WinEst.Length = Len(WinEst)
    totohwnd = FindWindow(vbNullString, Me.Caption)
    rtn = GetWindowPlacement(totohwnd, WinEst)
    Rectan = WinEst.rcNormalPosition
End Sub

Private Sub CommandButton1_Click()
   Dim WinEst As WINDOWPLACEMENT
    Dim Punto As POINTAPI
    Dim rtn As Long
    Punto.x = 1000
    Punto.y = 0
    WinEst.Length = Len(WinEst)
    WinEst.showCmd = SW_MINIMIZE
    WinEst.ptMinPosition = Punto
    WinEst.ptMaxPosition = Punto
    WinEst.rcNormalPosition = Rectan
    rtn = SetWindowPlacement(totohwnd, WinEst)
End Sub

Tu as maintenant de quoi faire joujou, si tu comprends et y tiens (ajouter ta propre barre et tes propres boutons, comme tu l'entends). Mais tu vas être seul à ce jeu-là ... (pas l'intention d'aller plus loin et de tout te faire de ce truc parfaitement inutile)



____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Messages postés
9
Date d'inscription
vendredi 12 février 2010
Statut
Membre
Dernière intervention
3 mars 2010

le but de la presentation c qu'elle soit accessible pour un gamin, voila pour quoi je tien au code de couleur ça sera plus simpl pour elle que croix et barre.

merci pour le prog je le testerai lundi au taf


Aracnard
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
1) Amuse-toi alors bien avec le code (tu dois normalement t'en sortir si tu as tout compris) de "restauration" aux bonnes dimensions et emplacement quand tu cliques sur le Userform réduit.
2) un gamin aura moins de difficultés à capter le sens des boutons traditionnels qu'il n'en aura à piger tes couleurs ! (ils sont mille fois plus dégourdis que ce que tu penses ... même mon petit-fils qui n'a que 5 ans et demi !)


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
A 5 ans et demi : un gamin est déjà trilingue : français - anglais - espagnol (et commence à se débrouiller dans un dialecte annexe : le catalan). Alors tu parles de la difficulté qu'il pourrait rencontrer à "assimiler" le sens d'une crois de fermeture et celui d'un bouton de réduction ! (tu plaisantes ?)


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Messages postés
9
Date d'inscription
vendredi 12 février 2010
Statut
Membre
Dernière intervention
3 mars 2010

elle deux fois mois que 5 ans et meme une mini souris c deja gros pour elle
lol


Aracnard
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
salut,

l'utilité reste subjective...

par contre c'est tout à fait faisable !!!

le plus "simple" restant néanmoins en supprimer la barre et de s'amuser avec des IMAGES, mais on peut très bien tout gérer en VBA, le handle du userform étant accessible

voir les sources VB6 (à adapter), telles SKIN, PERSONNALISATION, BARRE DE TITRE, etc

[hr]
Messages postés
9
Date d'inscription
vendredi 12 février 2010
Statut
Membre
Dernière intervention
3 mars 2010

ok et merci je crois que le temps que je fasse tout ca elle aura son propre PC lol , mais je v voir pour m'amuser avec ça



Aracnard