begin process at 2012 02 15 02:47:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

General

 > 

Conteneur transparent sur lequel on peut dessiner (hDC)


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

Conteneur transparent sur lequel on peut dessiner (hDC)

vendredi 18 janvier 2008 à 10:01:19 | Conteneur transparent sur lequel on peut dessiner (hDC)

windob

Membre Club


Salut,

Je développe une petit prog dans lequel j'extrait une icone avec l'API ExtractAssociatedIcon.
J'aimerais dessiner cette icon dans un conteneur qui serait transparent.
Seuelement, le probleme c'est qu'evidemment, si par exemple je prends un userform et que je met BackStyle a transparent, j'ai beau dessiner sur le userform (avec DrawIconEx), je n'ai rien !

Ma question est donc, existe t-il un conteneur possédant un hDC qui soit transparent de base mais sur lequel on peut dessiner et que seul le dessin soit non-transparent ?

J'aimerais éviter les techniques de découpages des bords avec les regions, etc car ces techniques sont souvent lentes et imprecises.

Merci d'avance
vendredi 18 janvier 2008 à 14:53:10 | Re : Conteneur transparent sur lequel on peut dessiner (hDC)

Renfield

Administrateur CodeS-SourceS
tu peux prendre un UserControl tout bête... joues avec le MaskColor / MaskPicture / BackStyle
vendredi 18 janvier 2008 à 15:39:03 | Re : Conteneur transparent sur lequel on peut dessiner (hDC)

windob

Membre Club

C'est ce que j'ai commencé par faire, mais l'ennui c'est que ça ne gere evidemment pas la transparence partielle.
Est-ce qu'il existe des controles qui sont transparents de base sur lesquels on peu dessiner ? C'est a dire comme un controle Image mais avec une propriété hDc en gros.

vendredi 18 janvier 2008 à 22:24:57 | Re : Conteneur transparent sur lequel on peut dessiner (hDC)

Renfield

Administrateur CodeS-SourceS
"ça ne gere evidemment pas la transparence partielle" mais qu'est-ce que tu racontes ? as tu bien regardé les propriétés dont je t'ai parlé ? as tu placé une image dans ton MaskPicture ?
samedi 19 janvier 2008 à 09:24:57 | Re : Conteneur transparent sur lequel on peut dessiner (hDC)

windob

Membre Club

Oui, je l'ai fait, justsment :

J'ai d'abords rempli le usercontrol avec une seule couleur pour que appliqué cette couleur comme maskcolor, j'ai dessiné ensuite le masque de l'icone parametre DI_MASK puis j'ai appliqué l'image du usercontrol a maskpicture :

        Ext_hIcon = ExtractAssociatedIcon(App.hInstance, Icon_FilePath, 0) 'ByVal Icon_Index)
        DrawIconEx UserControl.hDC, Int((m_LabelWidth - m_IconWidth) / 2), 0, Ext_hIcon, m_IconWidth, m_IconWidth, 0, 0, DI_MASK
        DrawTextEx UserControl.hDC, m_Caption, UserControl.ScaleX(m_LabelWidth, vbPixels, vbCharacters), lbRect, DT_CENTER, 0&
       
        UserControl.MaskPicture = UserControl.Image
        UserControl.MaskColor = UserControl.BackColor
       
        DrawIconEx UserControl.hDC, Int((m_LabelWidth - m_IconWidth) / 2), 0, Ext_hIcon, m_IconWidth, m_IconWidth, 0, 0, DI_IMAGE
       
        DestroyIcon Ext_hIcon

J'ai ensuite dessiné l'icone avec DI_IMAGE comme parametre.

Finalement, je me retrouve avec une icone qui est salement détourée puisque le masque est trop grand par rapport a l'image elle-meme puisque l'image contient de la transparence partielle (testé avec l'icone de notepad.exe).

Cordialement.





Cette discussion est classée dans : transparent, userform, hdc, conteneur, dessiner


Répondre à ce message

Sujets en rapport avec ce message

dessiner une ligne en vba excel sur userform [ par dedec94 ] Merci de bien vouloir m'aiderJ'aimerai pouvoir simplement dessiner une ligne en vba excel a partir de coordonné (x et y) mais impossible si quelqu'un Userform Transparent Gros Problème [ par vitter ] BonjourNouveau depuis ce matin je veux tous vous remercier car grace à ce site j'ai fais des pas de géantPouvez vous m'aider car j'avais réalisé sur d Dessiner sur le bureau [ par Julien237 ] Bonjour tout le monde, J'essaye de faire un programme permettant de dessiner sur le wallpaper (afin de, par exemple diffuser une vidéo ou pleins d'aut Label conteneur [ par chaibat05 ] Bonjour,Je cherche à transformer  un simple label en un contrôl conteneur, de façon à simuler un frame  "Transparent".Si c' est pas possible, comment Dessiner des secteurs dans un UserForm [ par coolbehappy ] Bonjour à tous. Je souhaite construire dans un UserForm des secteurs de différentes couleurs en précisant le centre, le rayon et l'angle, sans passer lié une checkbox vec une textbox [ par eloyer ] Bonjour à tous, J'ai un petit soucis d'écriture de code : J'ai deux userform ( formulaire et userform1), sur l'un d'eux j'ai une liste de textbox, s Userform / lecture de la celulle sélectionnée [ par Magiclucien ] Bonjour à tous, Je rencontre un petite difficulté avec un userform. Voilà, j’utilise un premier userform comme formulaire pour remplir une feuille Gerer un tableau a partir d'un userform [ par aminiou ] [^^happy13]Bonjour, [^^crossfinger] Je vous explique ma situation j'ai un tableau ci joint avec une macro dessus. Le tableau est composé de plusieur Picturebox transparent ? [ par Duke49 ] Bonsoir ! Etrange: Lorsque je créer un contrôle picturebox il prend la même couleur de fond que ma form. Objectif: J'ai 2 picturebox, 1 grand 400x10 impression d'une multipage [ par eloyer ] Bonjour, J'aimerai pouvoir imprimer toutes les pages de mon userform. J'ai deja trouvé toutes les discussions sur ce sujet dont la super aide concern


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 7,706 sec (3)

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