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
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 3
    Points
    3
    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 sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 575
    Points
    41 575
    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.

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 3
    Points
    3
    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 sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 575
    Points
    41 575
    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).

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 3
    Points
    3
    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 sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 575
    Points
    41 575
    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??

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