Comment utiliser cards.dll en vbnet 2010

Résolu
tirobut Messages postés 16 Date d'inscription jeudi 7 juillet 2011 Statut Membre Dernière intervention 22 juin 2012 - 15 juin 2012 à 20:39
tirobut Messages postés 16 Date d'inscription jeudi 7 juillet 2011 Statut Membre Dernière intervention 22 juin 2012 - 16 juin 2012 à 13:46
Bonsoir
j'ai longtemps cherché sans succès la façon d'utiliser les images des cartes se trouvant dans cards.dll, mais à part quelques programmes en VB6 je n'ai rien trouvé d'equivalent en VB2010. Et donc je sèche lamentablement.
Y aurait-il quelqu'un qui pourrait me donner quelques idées pour extraire ces petites images ?
Merci d'avance à ceux qui voudront bien me donner un coup de main.

3 réponses

Utilisateur anonyme
16 juin 2012 à 11:46
Bonjour,

cards.dll devant se trouver aux côtés de l'exécutable, voici un exemple qui affiche une dame de coeur sur ton formulaire selon la taille et la position voulue :
Option Strict On
Public Class Form1
    Declare Function cdtInit Lib "cards.dll" (ByRef width As Integer, _
                                          ByRef height As Integer) As Boolean
    Declare Function cdtDrawExt Lib "cards.dll" (ByVal hdc As IntPtr, _
                                                 ByVal x As Integer, _
                                                 ByVal y As Integer, _
                                                 ByVal dx As Integer, _
                                                 ByVal dy As Integer, _
                                                 ByVal card As Integer, _
                                                 ByVal suit As Integer, _
                                                 ByVal color As Integer) As Boolean
    Declare Sub cdtTerm Lib "cards.dll" ()
    'valeur peut prendre de 0 à 12 (as,2,3, ....,roi)
    'ici je veux afficher une dame (11)
    Dim m_Valeur As Integer = 11
    'couleur peut prendre 0 à 3 (trèfle, carreau, coeur, pique)
    'ici je veux du coeur (2)
    Dim m_Couleur As Integer = 2

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cdtInit(71, 96)
    End Sub

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        cdtTerm()
    End Sub

    Private Sub Me_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
        Try
            Dim hdc As IntPtr = e.Graphics.GetHdc()
            e.Graphics.ReleaseHdc()
            'ceci est la formule du calcul de la carte
            Dim Carte As Integer = m_Valeur * 4 + m_Couleur
            'cdtDrawExt(hdc_fenetre, postion x, position y, largeur carte, _
            '           hauteur carte, carte, dos=1/face = 0, fond)
            cdtDrawExt(hdc, 100, 50, 71, 96, Carte, 0, 0)
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
End Class
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
15 juin 2012 à 21:09
Si tu as le code VB6, tu peux essayer de le traduire.


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
tirobut Messages postés 16 Date d'inscription jeudi 7 juillet 2011 Statut Membre Dernière intervention 22 juin 2012
16 juin 2012 à 13:46
Bonjour
Merci pour ce code qui correspond en tous points à ce que je voulais.
J'espère pouvoir enfin réaliser ce jeu de cartes qui traine dans ma tête depuis fort longtemps.
0
Rejoignez-nous