Perte performance avec Drawtext [Résolu]

Signaler
Messages postés
2
Date d'inscription
mercredi 30 juillet 2008
Statut
Membre
Dernière intervention
30 juillet 2008
-
Messages postés
2
Date d'inscription
mercredi 30 juillet 2008
Statut
Membre
Dernière intervention
30 juillet 2008
-
bonjour à tous,

HELP ME!

en utilisant l'api DrawText, j'ai une perte de performance ..ma mémoire augmente à chaque fois, pourtant j'utilise le releasedc pour le déchargement...ca marche pas, à chaque appel la mémoire augment de 20ko ..

Public Sub AfficheCodeClavier()
    Dim R As RECT, Tcode As String, Compte As Long, Lec() As String
    Tcode = "A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z-,-;-:-!"
    Lec = Split(Tcode, "-")
    Compte = -1
        For i = 0 To 29
            Compte = Compte + 1
            SetRect R, 0, 35, 175, 90
            DrawText GetDC(Form1.cmdB(i).hwnd), Lec(Compte), Len(Lec(Compte)), R, DT_RIGHT
            Call ReleaseDC(Form1.cmdB(i).hwnd, GetDC(Form1.cmdB(i).hwnd))
        Next i
 Tcode = vbNullString
 ReDim Lec(0)
End Sub

2 réponses

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

et dans ce goût là çà donne quoi :

Public Sub AfficheCodeClavier()
    Dim R As RECT, Lec() As Variant, i As Integer, lhDC As Long
    
    Lec = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", ",", ";", ":", "!")
    SetRect R, 0, 35, 175, 90
    For i = 0 To 29
        lhDC = GetDC(Form1.cmdB(i).hwnd)
        DrawText lhDC, Lec(i), Len(Lec(i)), R, DT_RIGHT
        Call ReleaseDC(Form1.cmdB(i).hwnd,
lhDC)
    Next i
    Erase Lec
End Sub

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
2
Date d'inscription
mercredi 30 juillet 2008
Statut
Membre
Dernière intervention
30 juillet 2008

 merci à toi PCPT c'est impéccable