Une interface sympa avec pas grand chose et peu de code

Soyez le premier à donner votre avis sur cette source.

Vue 9 542 fois - Téléchargée 1 947 fois


Description

voilà ce source est juste un exemple faisant référence à pas mal de notions vous permettant de créer une interface sympa avec pas grand chose!!!!

le notions utilisées dans ce projet :
  • l'utilisation de fichier ressource

- récupération de chaine de texte depuis un fichier res avec LoadResString
- récupération de donnée et conversion en fichier image (un peu plus complexe)
  • utilisation d'un controle perso (le YommFormZone V2, je vous demande pas qui l'a développé ;-) )
  • découpage de fentêtre pour avoir une fenetre transparente
  • chargement dynamique de controles


voilà en gros pour les notions ;-)

pour l'interface tenez vous bien , elle ne contient que 7 controles (dont la form elle même)

et le code de la fenêtre il est en dessous ;-)

Quand je vous dis que cet exemple vous permet de faire une interface sympa avec pas grand chose je vous ments pas vous voyez !!!

Source / Exemple :


'******************************************************************
'Attention !!! Ceci n'est que le code de la form
' en effet un module existe dans le projet pour les fonctions de découpe de la form
' et récupération des fichiers images depuis le fichiers ressource
'******************************************************************

Option Explicit

Private MousePosFrm As POINTAPI

'pour le déplacement de la fenetre
Private Sub FctMouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
    With MousePosFrm
        .x = x
        .Y = Y
    End With
    If Button = vbLeftButton Then Screen.MousePointer = vbSizeAll
End Sub
'déplcament de la fenetre si le bouton gauche de la souris est appuyé
Private Sub FctMouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)
    If Button = vbLeftButton Then Me.Move Me.Left + x - MousePosFrm.x, Me.Top + Y - MousePosFrm.Y
End Sub
Private Sub FctMouseUp()
    Screen.MousePointer = vbDefault
End Sub

'raffraichissement du label d'information équivalent à un ToolTipText
Private Sub ChangeLblInfo(Optional ByVal Texte As String = "Gestionnaire Multimedia")

    DoEvents
    With LblInfo
        .Top = 0
        .FontSize = 14
        .FontBold = True
    End With
    With PicLbl
        .AutoRedraw = True
        .Move 0, 780, PicBG.Width, 600
        .PaintPicture PicBG.Picture, 0, 0, .Width, .Height, .Left, .Top, .Width, .Height
    End With
    With LblInfo
        .Caption = Texte
        .Top = (PicLbl.Height - .Height) / 2
        .Left = (PicBG.Width - .Width) / 2
    End With
    
End Sub

Private Sub Form_Load()

    Dim i As Long
    
    'création de l'interface
    With PicBG
        .AutoRedraw = True
        .BackColor = vbMagenta
        .BorderStyle = 0
        .AutoSize = True
        .BorderStyle = 0
        .ScaleMode = vbPixels
        .Move 0, 0, 6150, 4980
        .Picture = LoadResPic("FOND", "FOND")
        Me.BackColor = vbMagenta
        Me.Width = .Width
        Me.Height = .Height

        '"Découpe" la form suivant PictBG
        Call DecoupeForm(Me.hwnd, PicBG)
        .ScaleMode = vbTwips
    End With

    With PicMain
        .Move 900, 1590, 4350, 2430
        .PaintPicture PicBG.Picture, 0, 0, .Width, .Height, .Left, .Top, .Width, .Height
    End With

    With ImgCroix
        .Move 5340, 480
        .Tag = "CROIX"
        .Mode = AutoSize
        .MousePointer = [Cursor : Hand]
        Set .ImgMouseOut = LoadResPic(.Tag, "OUT")
        Set .ImgMouseHover = LoadResPic(.Tag, "HOVER")
        .Visible = True
    End With

    'création des boutons
    For i = 0 To 4
        If i <> 0 Then Load ImgMain(i)
        With ImgMain(i)
            .Tag = LoadResString(i)
            .Mode = AutoSize
            .AlphaColor = vbMagenta
            .Transparent = True
            .MousePointer = [Cursor : Hand]
            Set .ImgMouseOut = LoadResPic(.Tag, "OUT")
            Set .ImgMouseHover = LoadResPic(.Tag, "HOVER")
            Set .ImgMask = LoadResPic(.Tag, "MASK")
            .Visible = True
            Set .Container = PicMain
            If i <= 2 Then
                Set ImgMain(i).Container = PicMain
                ImgMain(i).Left = ((PicMain.Width / 3) * i) + (((PicMain.Width / 3) - ImgMain(0).Width) / 2)
                ImgMain(i).Top = ((PicMain.Height / 2) - ImgMain(i).Height) / 2
            Else
                Set ImgMain(i).Container = PicMain
                ImgMain(i).Left = ((PicMain.Width / 2) * (i - 3)) + (((PicMain.Width / 2) - ImgMain(0).Width) / 2)
                ImgMain(i).Top = (((PicMain.Height / 2) - ImgMain(i).Height) / 2) + (PicMain.Height / 2)
            End If
        End With
    Next
    
    'raffraichissement du label d'information
    ChangeLblInfo
    
End Sub

Private Sub ImgMain_MouseEnter(Index As Integer)
    ChangeLblInfo LoadResString(100 + Index)
End Sub

Private Sub ImgMain_MouseLeave(Index As Integer)
    ChangeLblInfo
End Sub

Private Sub ImgCroix_Click()
    If MsgBox("Quitter le gestionnaire multimedia ?", vbYesNo + vbQuestion, "Quitter") = vbYes Then Unload Me
End Sub

Private Sub ImgCroix_MouseEnter()
     If PicMain.Visible = True Then ChangeLblInfo "QUITTER"
End Sub

Private Sub ImgCroix_MouseLeave()
    If PicMain.Visible = True Then ChangeLblInfo
End Sub

Private Sub PicBG_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single): Call FctMouseDown(Button, Shift, x, Y): End Sub

Private Sub PicBG_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single): Call FctMouseMove(Button, Shift, x, Y): End Sub

Private Sub PicBG_MouseUp(Button As Integer, Shift As Integer, x As Single, Y As Single): Call FctMouseUp: End Sub

Private Sub PicLbl_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single): Call FctMouseDown(Button, Shift, x, Y): End Sub

Private Sub PicLbl_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single): Call FctMouseMove(Button, Shift, x, Y): End Sub

Private Sub PicLbl_MouseUp(Button As Integer, Shift As Integer, x As Single, Y As Single): Call FctMouseUp: End Sub

Private Sub PicMain_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single): Call FctMouseDown(Button, Shift, x, Y): End Sub

Private Sub PicMain_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single): Call FctMouseMove(Button, Shift, x, Y): End Sub

Private Sub PicMain_MouseUp(Button As Integer, Shift As Integer, x As Single, Y As Single): Call FctMouseUp: End Sub

Conclusion :


tous ce source est un regroupement de plusieurs notions qui combinées entre-elles donnent un truc plutot sympa non?

vous avez peut être déjà croisé certaines lignes de code de ce projet sur le site et c'est normal car je n'allais pas réinventer ce que d'autres avaient déjà fait. Mais les bouts de code récupérer ont été vérifiés et parfois modifiés pour une utilisation optimale !!!

voilà , en espérant vous faire plaisir

PS: avouez que certains d'entre vous ne pensaient pas pouvoir faire quelque chose dans ce genre aussi facilement ;-)

--------------------------------------------------------------------------------------------------------------------

le source du controle YommFormZone est dans un zip et oui , on ne peut pas compilé un exe si on fait un multiprojet avec un ocx

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
3
>>VinceVG
Ca fait plaisir de voir k'on garde certains de mes sources même si on en a pas besoin lol ;-)
merci @ toi
Messages postés
222
Date d'inscription
mercredi 8 septembre 2004
Statut
Membre
Dernière intervention
30 mars 2016

C'est trés chouette; Ca ne me sert à rien aujourd'huis mais je me le garde sous le coude.

J'ai adoré le premier commentaire ça m'a fait beaucoup rire.
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
3
une source de plus....euh, ce code date tout de même du 13/04 ;-) , je n'ai fait que l'updater ;-)

mais content que cela ait attiré ton attention ;-) et merci
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
32
Une bonne source de plus Yomm, ca fait plaisir à voir des source de cette qualité.
Bien structuré, bien commenté et tout et tout.
Bref: Super 10/10
Messages postés
6
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
25 juillet 2005

Tres bo projet! Bien utile pour les Newbie com moi!
Afficher les 27 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.