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
7668
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
1
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
7668
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
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
50
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
7668
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
1
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
7668
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
7668
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