cs_DeathAngel
Messages postés117Date d'inscriptionvendredi 12 avril 2002StatutMembreDernière intervention13 avril 2007
-
20 nov. 2003 à 12:41
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
20 nov. 2003 à 17:23
Bonjour à tous,
j'ai trouvé plein de sources et de posts sur le sujet des capture d'écran, mais rien ne répond à mon problème.
J'ai un form sur lequel je crée plein de textbox et de shapes.
Je cherche à faire une capture de ce formulaire, mais sans la barre de titre, ni les barres de menus et d'outils.
J'arrive bien à capturer uniquement le form (sans la barre windows), mais pour virer la barre de titre etc, je suis obligé de retravailler la capture à la main.
Je suis curieux de voir comment tu fais.
Je faisais ma capture avec keybd_event, mais comme ça simule l'appui sur la touche ImprEcr, j'ai toujours la barre de titre.
Comment utilise-t-on BitBlt ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 20 nov. 2003 à 17:23
ok, c'est sur que vu comme ca...
je vais t'expliquer ca, dans le principe, si tu souhaite davantage d'infos....
en fait, un blit est un transfert de pixels (pour faire simple)
ca permet de faire tout un tas d'effet supers, mais ce qui nous interesse, est la copie telle quelle de pixels.
ca fais comme une photo d'une zone donnée....
le tout etant de determiner quelle est la zone que tu souhaite, dans ta fenetre (les coordonnées). pour cela (retrouver la taille de la barre de titre), il existe des fonctions....
essaie ce code, pour te faire une idée....
places une pictureBox
Option Explicit
Private Declare Function StretchBlt Lib "gdi32.dll" (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
Private Declare Function GetDC Lib "user32.dll" (ByVal hwnd As Long) As Long
Private Sub Picture1_Paint()
With Picture1
StretchBlt .hdc, 0, 0, .ScaleWidth \ 15, .ScaleHeight \ 15, GetDC(0), 0, 0, Screen.Width \ 15, Screen.Height \ 15, vbSrcCopy
End With
End Sub
c'est qu'un exemple, bien entendu, ca fais une capture d'ecran, et la place dans ton pictureBox...... tu peux faire de même avec tou ce que tu veux....