begin process at 2012 02 13 23:34:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Multimédia

 > 

DirectX

 > 

Transparence Avec DirectX par hDC


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Transparence Avec DirectX par hDC

dimanche 11 janvier 2009 à 10:09:51 | Transparence Avec DirectX par hDC

akella

Bonjour.

Voila, comme l'explique brièvement le titre, j'ai un problème de transparence lorsque j'utilise une surface DirectX 7 obtenu par le hDC d'une picturebox.

premièrement, je récupère et atribut le hDC à la surface avec cette fonction : [code]Public Function BltToDD(ByVal hDC As Long, DDSurf As DirectDrawSurface7, ByVal PosX As Long, ByVal PosY As Long, Optional ByVal Width As Long, Optional ByVal Height As Long)
Dim DDhDC As Long, desc As DDSURFACEDESC2 'hDC for the Surface and description of surface
DDhDC = DDSurf.GetDC 'Get the surface DC
DDSurf.GetSurfaceDesc desc 'Get the description
'Blt the PicBox to the Surface and return the False if theres an error
If IsMissing(Height) Or Height <= 0 Then Height = desc.lHeight
If IsMissing(Width) Or Width <= 0 Then Width = desc.lWidth
BltToDD = (BitBlt(DDhDC, 0, 0, Width, Height, hDC, PosX, PosY, vbSrcCopy) = 0)
DDSurf.ReleaseDC DDhDC 'Release the DC
End Function[/code]
par la suite, je récupère le pixel du haut gauche qui est de la couleur de transparence et l'applique grâce à ce sub : [code]Public Sub SetMaskColorFromPixel(ByRef TheSurface As DirectDrawSurface7, ByVal X As Long, ByVal Y As Long)
Dim TmpR As RECT
Dim TmpDDSD As DDSURFACEDESC2
Dim TmpColorKey As DDCOLORKEY

With TmpR
.Left = X
.Top = Y
.Right = X
.Bottom = Y
End With

TheSurface.Lock TmpR, TmpDDSD, DDLOCK_WAIT Or DDLOCK_READONLY, 0

With TmpColorKey
.low = TheSurface.GetLockedPixel(X, Y)
.high = .low
If TheSurface Is DD_InfoSurf Then
    .high = .low
End If
End With

TheSurface.SetColorKey DDCKEY_SRCBLT, TmpColorKey

TheSurface.Unlock TmpR
End Sub[/code]
je la Blt à la surface primaire, seulement la transparence n'y est pas.

À noter que la même démarche fonctionne si l'on remplace le hDC de la picture par un fichier Image, seulement je ne veux pas que ce soit un fichier Image ou un fichier Ressource.

Bonsoir et Merci.


Cette discussion est classée dans : long, hdc, transparence, surface, byval


Répondre à ce message

Sujets en rapport avec ce message

transparence d'une fenêtre [ par bultez ] Bonjour à toutes et à tous,    je ne parviens pas à récupérer la transparence de la fenêtre en cours.    ( la mettre, ça baigne, la relire non )    j' StretchBlt et objet Printer [ par electroremy ] Bonjour,je suis en train de terminer la version III de CiDess.je programme en VB5 SP3J'ai rencontré pas mal de déboirres pour dessiner et imprimer du probleme avec api [ par eyeofcobra ] 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' DrawRectangle couleur + hachure [ par peug ] Salut !Est-il possible de créer un rectangle de couleur plein avec des hachures en plus ? fond jaune et hachure rouge par exemple sans devoir dessiner Bug affichage [ par victor110 ] BonjourLorsque je lance mon programme pour télécharger un fichier:[code]Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFi Lister les Handles des applications ouvertes [ par dedenet2 ] Bonjour,Je cherche à faire fonctionner un programme qui liste les handles de toutes les applications ouvertes.N'etant pas spécialistes des "API" ,je c Telechargement SUR de fichier [ par quantum59 ] Bonjour,Dans mon code, j'ai utilisé une fonction qui telecharge un fichier texte.Le problème, c'est que ma fonction n'est pas sur car il arrive parfoi Controle de la souris sous VBA [ par openfire666 ] Bonjour,Sur de nombreux forums j'ai vu que l'on pouvait contrôler sa souris n'importe où sous Windows grâce à du code VBA (ici sous Excel).Je place un Probleme d'écriture dans la base de registre [ par thom8994 ] Bonjour,Je suis en train de faire un programme d'édition de de texte RTF et je voudrais associé mon programme avec les fichier portant l'extension *.r [Projet VB6] Projet Splash [ par keops_dev ] Bonjour,j'ai trouver un code  pour m'inspirer d'un splash en exemple, je souhaite réaliser un projet splash screen avec le logo de mon entrepriseDonc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,543 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales