Probleme avec api

eyeofcobra Messages postés 7 Date d'inscription mardi 12 août 2008 Statut Membre Dernière intervention 15 août 2008 - 14 août 2008 à 12:18
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 15 août 2008 à 09:58
salut à tous et à toutes
j'ai essayé ce code pour faire un zoom sur une image sur excel mais j'ai toujours un soucis avec une ligne du programme et j'arrive pas à comprendre le problème.
merci de m'aider le plus tot possible
voici le code:

Const ScrCopy = &HCC0020

Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, _
ByVal nWidth As Long, ByVal nHeight As Long, _
ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, _
ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, _
ByVal dwRop As Long) As Long

'DrawSpace est un PictureBox avec AutoSize à False
Private Sub CmdZoom_Click()
Dim l As Long
*********** l = StretchBlt(DrawSpace.hdc, 0, 0, DrawSpace.ScaleWidth + 10, DrawSpace.ScaleHeight + 10, DrawSpace.hdc, 0, 0, DrawSpace.ScaleWidth, DrawSpace.ScaleHeight, ScrCopy)**********************
DrawSpace.Refresh
Debug.Print l
End Sub

Private Sub CmdDeZoom_Click()
Dim l As Long
******************* l = StretchBlt(DrawSpace.hdc, 0, 0, DrawSpace.ScaleWidth - 10, DrawSpace.ScaleHeight - 10, DrawSpace.hdc, 0, 0, DrawSpace.ScaleWidth, DrawSpace.ScaleHeight, ScrCopy)*******************
DrawSpace.Refresh
Debug.Print l
End Sub

9 réponses

dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
14 août 2008 à 13:31
Bonjour ,

J'ai essayé ton programme rapidement sur Vb6.
Vérifie les propriétés de ton picturebox.
 Il faut:    
        ScaleMode >> Pixel   (et non en twip)
        AutoRedraw >>True

Merci de me dire si ça marche mieux !
Salut
0
eyeofcobra Messages postés 7 Date d'inscription mardi 12 août 2008 Statut Membre Dernière intervention 15 août 2008
14 août 2008 à 14:01
vraiment je te remercie de ton aide mais peux tu me dire où je peux trouvé ses propriétés ou me donner le code correcte.
je vous rappelle que je programme sur vb qui est en excell si vous avez des conseils je vous serais reconnaissant
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
14 août 2008 à 14:37
j'ai essayé ce code pour faire un zoom sur une image sur excel

et

(quelque part)  : hdc

et

Vérifie les propriétés de ton picturebox.
 Il faut:    
        ScaleMode >> Pixel   (et non en twip)
        AutoRedraw >>True

Mes félicitations à tous les deux !
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
14 août 2008 à 14:44
salut,

l'API StretchBlt Lib a besoin d'un Device Context (le hdc As Long)
logiquement, DrawSpace.hdc n'existe pas en VBA...

pas plus que le contrôle PICTURE me semble, tu as uniquement un contrôle IMAGE
non?

thème topic : déplacé de VB6 vers VBA
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0

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

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
14 août 2008 à 19:38
Bien... nous voilà où il convient ...

Un salut à PCPT

Utilise alors la propriété Stretch de ton contrôle image et multiplie par un coefficient de ton choix ses dimensions.
0
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
14 août 2008 à 20:39
Bonsoir ,

J'ai bien précisé dans le premier message qu'il s'agissait d'un programme en VB6 et
ça fonctionne.Je ne parle pas de VBA.
Effectivement , on ne peut pas le réaliser sur VBA Excel.Il ny a qu'une "Image" et
les propriétés que j'ai cité n'existe pas.
Conseils de jmfmarques à prescrire.

Salut
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
14 août 2008 à 21:38
Et moi, je prends ma seconde paire de lunettes, et je lis ...

"j'ai essayé ce code pour faire un zoom sur une image sur excel mais j'ai toujours un soucis avec une ligne du programme et j'arrive pas à comprendre le problème. "

Et j'attends que tu sois clair ...
0
eyeofcobra Messages postés 7 Date d'inscription mardi 12 août 2008 Statut Membre Dernière intervention 15 août 2008
15 août 2008 à 09:03
bonjour tout le monde
pour que je soit claire avec vous je débute avec vba se sont mes premier jour.
donc j'ai aucune idée sur ce language.
juste une petite demande veuillez m'expliquer plus en cas d'indication car j'arrive pas à comprendre tous.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 août 2008 à 09:58
Bonjour, eyeofcobra

Si ce sont tes premiers jours avec vba, tu devrais commencer par le commencement en chaque chose (dans le cas qui t'intéresse, il s'agit des contrôles,  de leurs différentes propriétés, de ce à quoi elles servent et des évènements que subissent les contrôles.

Mais ne perds surtout jamais de vue la vocation essentielle (celle d'un tableur) de Excel... C'est à celà, que tu devrais avant toute autre chose t'intéresser, à tes débuts. Le reste, c'est surtout pour se divertir, il me semble...

Amitiés et bon apprentissage.
0
Rejoignez-nous