Probleme api scrolldc [Résolu]

Signaler
Messages postés
41
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
13 août 2012
-
Messages postés
41
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
13 août 2012
-
Bonjour!
Toujours avec mon probleme de fuildite d'un apercu avant impression,j'ai trouver une api qui pourrais m'aider ,mais je n'arrive pas a l'utilise api scrolldc
je sais qu'il y a beaucoup d'example mais je n'y comprends rien
si qq un passe par la et qui serai m'expliquer ca serai cool
merci
A voir également:

13 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
ah non, te faut un "dessin"...

voir les arguments de Line, pour dessiner des cadres...

Picture1.DrawWidth = 5
Picture1.Line (120, 120)-(500, 500), vbRed, BF
Picture1.Line (120, 120)-(500, 500), vbBlue, B

l'avantage, c'est que pour imprimer, tu n'a que très peu de modif a faire :

Printer.DrawWidth = 5
Printer.Line (120, 120)-(500, 500), vbRed, BF
Printer.Line (120, 120)-(500, 500), vbBlue, B
Printer.EndDoc
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
Bonjour,

j'ai des difficultés à comprendre ce que cette fonction de l'Api de Windows (dont la vocation est de "dérouler" un rectangle - ton DC -) a à voir avec un aperçu vant impression ...
Explique ...
Et précise-nous également ce que tu as (ou as réussi à mettre) dans ton contexte de dispositif (DC)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
ScrollWindowEx me semble plus appropriée...
C'est même ce que dit la doc de ScrollDC: Si toute la zone cliente doit être scrollée, utiliser ScrollWindowEx.

http://msdn.microsoft.com/en-us/library/bb787593(VS.85).aspx
Messages postés
41
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
13 août 2012

Bonjour,Et Merci a vous deux,
Voila le probleme c'est que j'ai un apercu  avant impression   dans une picture  box,mais il est trop grand pour etre       visible en entier,donc je dois   utiliser   des scrollbar,j'ai essayer au depart de redessiner le    tout  (exemple,quand on utilise les scroll bar verticale je soustrait aux valeurs top    de depart    la v aleur du scrollbar,mais ce n'est pas fluide du tout,donc je voudrais trouver une autre solution.
j'espere etre clair dans mes explication et que vous pourrais me guider,Merci
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
redessiner le tout ?

un BitBlt suffit, tu peux cadrer la chose en fonction de la position de ton ScrollBar....

(voir même la méthode Render de ton picturebox)
Messages postés
41
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
13 août 2012

merci pour votre reponse ultra rapide,
je ne connais pas l'utilisation bitblt,comment la mettre en place
encore merci
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
dans un nouveau projet

j'ai ajouté une picturebox Picture1 contenant une grande image. j'ai mis cette Picturebox en invisible.
j'ai ajouté une petite pictureBox Picture2
j'ai ajouté une HScrollbar et une Vscrollbar

ensuite:

Private Sub Form_Load()
Me.ScaleMode = vbPixels
Picture1.ScaleMode = vbPixels
Picture2.ScaleMode = vbPixels

HScroll1.Max = Picture1.Width - Picture2.Width
VScroll1.Max = Picture1.Height - Picture2.Height

Render
End Sub

Private Sub Render()
Picture1.Picture.Render Picture2.hDC, _
0, 0, _
Picture2.Width, Picture2.Height, _
ScaleX(HScroll1.Value, vbPixels, vbHimetric), ScaleY(Picture1.Height - VScroll1.Value, vbPixels, vbHimetric), _
ScaleX(Picture2.Width, vbPixels, vbHimetric), -ScaleY(Picture2.Height, vbPixels, vbHimetric), ByVal 0&

End Sub

Private Sub HScroll1_Change()
Render
End Sub

Private Sub HScroll1_Scroll()
Render
End Sub

Private Sub VScroll1_Change()
Render
End Sub

Private Sub VScroll1_Scroll()
Render
End Sub
Messages postés
41
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
13 août 2012

ton code marche nikel pour une     image,
mais dans mon cas ca ne fait rien
je ne comprends pas commend je peux faire
dans mon prog  j'ai  fait mon  apercu   en dessinnant  ligne par ligne,(c'est un apercu d'un planning de conges en faisant picturebox.print"machinbidule"etc..),je pense qu'on est pas loin d'y arriver,mais il doit y avoir qq chose qui ne fonctionne pas
encore merci
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
ton "dessin" se trouve dans l'image

ajoutes simplement

Set Picture1.Picture = Picture1.Image

une fois ton dessin terminé

pour transferer ton dessin dans la Picture.
et ca devrais rouler
Messages postés
41
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
13 août 2012

encore moi
Le probleme c'est que j'ai mis des shapes pour faire des tableaux ,elles ne se transfere pas dans l'image,est ce qu'il y autre chose a faire
??
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
D'où ma question (plus haut)
"Et précise-nous également ce que tu as (ou as réussi à mettre) dans ton contexte de dispositif (DC)"

Car c'est par là qu'il faut commencer, avant même de parler de "scroller"
Messages postés
41
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
13 août 2012

Donc dans mon picture box j'y ai mis des groupes de fichier bmp(petite taille),des shapes en forme de rectangle (pour faire un tableau) ,dans ce tableau j'y mets du texte et les images
merci
Messages postés
41
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
13 août 2012

C'est bon ca marche nickel ,enncoree une fois je te remerci pour le bon coup de pousse que tu m'a donne
@plus