IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

api:changer la couleur d un edit


Sujet :

Visual C++

  1. #1
    Membre � l'essai
    Inscrit en
    Mai 2007
    Messages
    5
    D�tails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par d�faut api:changer la couleur d un edit
    Bonjour,

    alors je suis une vraie quiche avec windows et je voudrais afficher du texte de diff�rentes couleurs dans un controle de type edit. La fonction settextcolor provoque un plantage (la petite fenetre envoyer/ne pas envoyer le rapport d erreur).
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    case WM_CREATE:
                {
                 typedef int(WINAPI*DLL_FUNCTION_TESTFUNCTION)();
    	      DLL_FUNCTION_TESTFUNCTION INITCONTROLE;
    	     INITCONTROLE=(DLL_FUNCTION_TESTFUNCTION)GetProcAddress(hdll,"InitCommonControls");
    	     INITCONTROLE();//dans le code complet, je creer des onglets
    	     typedef int(WINAPI*DLL_FUNCTION_TESTFUNCTION2)(HDC,COLORREF);
    		 DLL_FUNCTION_TESTFUNCTION2 CHANGECOULEUR;
    		 CHANGECOULEUR=(DLL_FUNCTION_TESTFUNCTION2)GetProcAddress(hdll,"SetTextColor"); 
    hEdit =CreateWindowEx(WS_EX_CLIENTEDGE ,"edit","\r\nTest ",WS_CHILD|WS_VISIBLE,15,40,290,163,hwnd,NULL,hinst,NULL);
                    HDC hdc=GetDC(hstatic);
                    SetFocus(hstatic);//ne change rien
    		CHANGECOULEUR(hdc,RGB(0,0xFF,255));
                   return 0;
    Avec au debut du main
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    hdll=LoadLibrary("comctl32.dll");
    et a la fin
    J ai essay� en mettant le code dans un case WM_PAINT, ca ne change rien.

    Si quelqu un a une id�e soit pour r�soudre le plantage, soit pour changer la couleur du texte par un autre moyen, je suis preneuse.

    PS: j'utilise bloc note et je compile avec l invite de commande (g++ fichier.cpp), je sais c est un peu barbare.

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Euh... D�j�, pourquoi charges-tu dynamiquement comctl32.dll au lieu de simplement lier ton programme � sa biblioth�que statique d'importation, comctl32.lib ?

    Ensuite, les majuscules, c'est sympa pour les typedefs, mais beaucoup moins sympa pour les noms de tes variables pointeurs de fonction...

    Et � ma connaissance, SetTextColor() n'est pas dans ComCtl32.dll. Ce serait plut�t dans User32.dll ou GDI32.dll...
    Edit: c'est GDI32.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre � l'essai
    Inscrit en
    Mai 2007
    Messages
    5
    D�tails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par d�faut
    Merci,j ai essay� avec gdi32.dll, ca ne plante plus mais ca ne change pas la couleur, c est deja mieux

    Pour r�pondre � ta question, je ne suis pas parvenue � trouver les .lib (toujours pas dailleurs si sur mon Pc, ni sur google, il y a un truc qui m'�chappe )et le copi�-coll� avec le chargement dynamique a march� tout de suite pour InitControl donc j esperais faire la meme chose avec les couleurs et boucler ce truc . Je dois avouer que d habitude je code sous linux et que j aime vraiment ecrire du code sur une page blanche mais les problemes de compilations et de liens me d�passent un peu ( j ai appris a programmer en turbo pascal sous DOS).

    Pour mon probleme, je crois qu il faut que j intercepte le message PAINT de l'edit et non pas de la fenetre comme je le faisait.
    Je vais essayer de fouiller encore pour voir si ma compr�hension s am�liore.

    Pour les majuscules, oui c est pas g�nial, en fait je fais souevnt ca quand je teste une fonction pour la trouver plus facilement dans ma page

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Si tu n'as pas les .lib, c'est que tu n'as pas correctement install� le Platform SDK (qui doit �tre t�l�charg� s�par�ment si tu utilises la version Express de Visual).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre � l'essai
    Inscrit en
    Mai 2007
    Messages
    5
    D�tails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par d�faut
    Je n ai pas install� la "plateforrme SDK", ni visual : j ai install� gcc que je lance en ligne de commande et je ne trouve pas les .lib t�l�chargeables s�par�ment.

  6. #6
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Si tu as install� MinGW, il ne s'agit pas de .lib mais de .a : Notamment libgdi32.a.

    PS: Si tu n'as pas Visual, que fait ce thread dans le forum Visual??
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 02/09/2013, 16h25
  2. changer la couleur d'un edit avec les messages
    Par David dans le forum API, COM et SDKs
    R�ponses: 22
    Dernier message: 20/09/2011, 23h05
  3. [VB6]Changer la couleur d'une ligne d'un ListView
    Par Troopers dans le forum VB 6 et ant�rieur
    R�ponses: 3
    Dernier message: 14/03/2003, 17h02
  4. Changer la couleur de fond de l'�cran
    Par tnk dans le forum x86 16-bits
    R�ponses: 5
    Dernier message: 19/01/2003, 01h37
  5. Changer les couleurs de la palette avec du RGB
    Par le mage tophinus dans le forum x86 16-bits
    R�ponses: 11
    Dernier message: 13/01/2003, 08h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo