cs_NoMitsu
Messages postés122Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 février 2011
-
13 févr. 2005 à 16:32
bidoch78
Messages postés67Date d'inscriptionmercredi 27 février 2002StatutMembreDernière intervention 2 décembre 2005
-
15 févr. 2005 à 09:22
Salut a tous,
Je cherche une API qui serais capable de me donner
exactement l'equivalent de ceci : objet.hDC ou objet peu etre une form, une
picture..... en utilisant le hwnd de cet objet (ou si vous avez une autre methode
je suis preneur aussi)
la reponce a cette question me permetrais de transformer ma classe en controleuser
cs_NoMitsu
Messages postés122Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 février 2011 13 févr. 2005 à 16:57
a mon grand regret sa ne parche pas regarde un petit exemple tous pres si tu veu tester
VERSION 5.00
Begin VB.Form Form1
BackColor = &H000404C4&
Caption = "Form1"
ClientHeight = 7290
ClientLeft = 60
ClientTop = 450
ClientWidth = 12555
LinkTopic = "Form1"
Picture = "2.frx":0000
ScaleHeight = 486
ScaleMode = 3 'Pixel
ScaleWidth = 837
StartUpPosition = 3 'Windows Default
Begin VB.CommandButton Command1
Caption = "Command1"
Height = 375
Left = 4080
TabIndex = 1
Top = 1920
Width = 2415
End
Begin VB.PictureBox pic
AutoRedraw = -1 'True
Height = 1815
Left = 6360
ScaleHeight = 117
ScaleMode = 3 'Pixel
ScaleWidth = 125
TabIndex = 0
Top = 4920
Width = 1935
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
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
cs_NoMitsu
Messages postés122Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 février 2011 13 févr. 2005 à 17:16
non plus, sa capture aussi le dc de la picturebox alors que je veu seulement le dc du controle. Mais merci qd meme.
la je regarde l'api GetDCEx mais je comprand pas trop comment elle
fonctionne et je n'est pas trouver d'exemple sur le net, tu n'aurais
pas qq info par hasard ?
"Le difficile c'est ce qui peut-être fait tout de suite.
L'impossible, c'est ce qui prend un peu plus de temps.", George
Santayana
cs_NoMitsu
Messages postés122Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 février 2011 13 févr. 2005 à 17:27
c'est comme si j'avais un DC globale, avec GetWindowDC
je capture l'image de toute la feuillle (la form et ses controle) alors
que je veu juste recuperer l'image qui se trouve dans la form (enfin
dans cet exemple, mais sinon sa peu etre de n'importe qu'elle controle).
il me faut le dc pour recuperer l'ipmage que contien le controle en faite.
"Le difficile c'est ce qui peut-être fait tout de
suite. L'impossible, c'est ce qui prend un peu plus de temps.", George
Santayana
cs_NoMitsu
Messages postés122Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 février 2011 13 févr. 2005 à 17:54
non il me faut trouver un autre moyen que
paintpicture car d' abord question performance c'est pas terrible mais sur tous
c'est qu'il me faut une api car je manipule pas les objet pour pouvoir avoir
l'image je ne possede juste le hwnd du controle c'est tous !
"Le
difficile c'est ce qui peut-être fait tout de suite. L'impossible,
c'est ce qui prend un peu plus de temps.", George Santayana
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 13 févr. 2005 à 19:02
Je viens de tester, et GetDC marche très bien.
L'inconvénient de GetWindowDC est que tu récupère le DC d'affichage de
toute la fenêtre, donc ce n'est peut-être pas ce que tu recherche, mais
GetDC marche très bien.
Ou est l'erreur alors ? Ben il s'agit des coordonnées que t'utilise : pic.Left,
pic.Top, c'est à dire les coordonnées de ta picturebox, donc forcément,
tu récupère l'image de ton picturebox, que tu réaffiche... Mets plutôt
: 0, 0 :
cs_NoMitsu
Messages postés122Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 février 2011 13 févr. 2005 à 19:27
Effectivement
il recupere le dc de toute la form et
mon but et de recuperer l’image qui se trouve sous la picture box
(c'est pour sa que j'utilise ses coordonner) pour la reafficher
a l’interieur comme si il n’y avais pas de pictrebox en qq sorte donc
sa marche
toujours pas snif
"Le difficile c'est ce qui peut-être
fait tout de suite. L'impossible, c'est ce qui prend un peu plus de
temps.", George Santayana
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 13 févr. 2005 à 19:41
comme l'image est cachée StretchBlt ne pourra pas la récupérer ce que PaintPicture est capable de faire.
si tu veux aller chercher l'image qui se trouve derrière la PictureBox, il faut déplacer provisoirement la PictureBox, ensuite copier l'image, et enfin la remettre à sa place.
cs_NoMitsu
Messages postés122Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 février 2011 13 févr. 2005 à 19:41
non je peu pas utiliser cet propriete car la classe que j'utilise
apres ne peu plus rien dessiner dans le conrole si j'active la
transparence, il me faut absolument un moyen de recuperer l'image
"Le
difficile c'est ce qui peut-être fait tout de suite. L'impossible,
c'est ce qui prend un peu plus de temps.", George Santayana
cs_NoMitsu
Messages postés122Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 février 2011 13 févr. 2005 à 19:45
Gobillot -> je ne peu pas me permetre de faire de tel operation trop couteuse en resource lorsqu'il y a un nombre important de controle, si j'arrive a recuperer l'image ac obj.hdc je voi pas pr quoi je pourais pas avec une api !!! je suis sur que c'est possible
"Le difficile c'est ce qui peut-être fait tout de suite. L'impossible, c'est ce qui prend un peu plus de temps.", George Santayana