Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1256 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Rendre transparent le fond d'un CEdit

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Rendre transparent le fond d'un CEdit

n°1790127
cyte
Posté le 21-09-2008 à 19:40:23  profilanswer
 

salut à tous,
 
Je cherche à rendre transparent un CEdit (j'utilise VisualC++ 2008). Pour ça, j'ai vu qu'il fallait utiliser la fonction SetBkColor mais je ne sais pas intercepter le message WM_CTLCOLOR à destination du CEdit!!!!
 
voici le code dans la fonction OnCtlColor de la boite de dialogue principale dans laquelle il y a le CEdit :
 

Code :
  1. HBRUSH CIhmPrincipal::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
  2. {
  3. HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  4. if (pDC == this->GetDlgItem(IDC_TEST)->GetDC())
  5. {
  6.  TRACE("OnCtrlColor de l'edit \n" );
  7. }
  8. // TODO:  Change any attributes of the DC here
  9. // TODO:  Return a different brush if the default is not desired
  10. return hbr;
  11. }


 
=> je ne rentre jamaisdans la condition if!!
Comme vous pouvez l'imaginer je suis pas un pro...  
 
Si quelqu'un peut m'aider!!!!!
 
Merci d'avance


Message édité par cyte le 22-09-2008 à 11:47:11
mood
Publicité
Posté le 21-09-2008 à 19:40:23  profilanswer
 

n°1790601
cyte
Posté le 22-09-2008 à 17:32:16  profilanswer
 

personne n'a une petite idée...????

n°1790830
antsite
Je me souviens
Posté le 23-09-2008 à 11:22:22  profilanswer
 

Tu t'y prends mal, au lieu de tester le HDC, teste le contrôle en lui-même (son HWND) :
 

Code :
  1. if(pWnd == this->GetDlgItem(IDC_TEST)) {
  2.    // todo
  3.    TRACE("OnCtrlColor de l'edit n" );
  4. }


Je ne te garantis rien car je ne suis pas expert en MFC !


Message édité par antsite le 23-09-2008 à 11:24:00
n°1790864
cyte
Posté le 23-09-2008 à 12:21:28  profilanswer
 

pas mieux!!! Mais merci tout de même d'avoir essayer de m'aider!!  
 
la fonction OnCtrlColor() de la fenêtre principale est appelée pour chaque élément inclus dans cette fenêtre?

n°1790881
antsite
Je me souviens
Posté le 23-09-2008 à 12:47:11  profilanswer
 

http://msdn.microsoft.com/en-us/li [...] S.80).aspx
 
Inspire-toi de l'exemple, tu nous diras si ca marche mieux avec
if(pWnd->GetDlgCtrlID() == IDC_TEST)
 
Je suis dubitatif.

n°1790894
cyte
Posté le 23-09-2008 à 13:12:21  profilanswer
 

ça marche mieux!!!! Je te connais pas mais t'es un chef!!!
Je dois retourner au boulot; ce soir j'essaie d'implémenter la fonction qui va rendre tranparent le fond du CEdit.
 
Je te tiens au courant!!

n°1790900
antsite
Je me souviens
Posté le 23-09-2008 à 13:28:32  profilanswer
 

pas de souci  ;)  
 
:calimero:

n°1790991
cyte
Posté le 23-09-2008 à 16:53:28  profilanswer
 

j'ai repris l'exemple de msdn comme envoyé dans le lien mais ça ne marche pas trop.
 
Contrairement à l'exemple, je n'ai pas défini de variable membre du type CBrush. Je vais l'ajouter mais je ne vois pas trop l'impact...

n°1790994
cyte
Posté le 23-09-2008 à 16:56:05  profilanswer
 

ah si, ça marche nickel.......
J'ai encorebeaucoup de lacunes en MFC!!!!!!!!!!
 
Encore merci pour tout!

n°1790998
cyte
Posté le 23-09-2008 à 16:58:38  profilanswer
 

et zut....
 
Autre soucis : fond transparent = fond de couleur du fond de la boite de dialogue parent à priori!!! Donc si le CEdit est au dessus d'une image bitmap de couleur verte par exemple, ce CEdit n'est plus tranparent...

mood
Publicité
Posté le 23-09-2008 à 16:58:38  profilanswer
 

n°1791018
cyte
Posté le 23-09-2008 à 17:30:06  profilanswer
 

ça marche en ajoutant :
m_brush.CreateStockObject(HOLLOW_BRUSH);
 
voilà...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Rendre transparent le fond d'un CEdit

 

Sujets relatifs
Comment mettre un fond transparent FLASH 8javaScript et balise <area> pour rendre visible une div
[JTable] Est-il possible de rendre les cellules d'un JTable "cliquableRendre un champ cliquable
Java - Afficher un graphe et rendre interactifSWF inactif sous IE6 avec value="transparent"
Fond d'écran en CSSPartage de fond d'écran
[Java3D] Background transparent 
Plus de sujets relatifs à : Rendre transparent le fond d'un CEdit


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR